df77fc8de8
libluna: Remove make_array() and destroy_array()
...
Placement new on arrays is a bit unreliable and could cause out-of-bounds data accesses.
2023-08-02 14:47:58 +02:00
aac8280e8a
libc+libos: Properly propagate errors through fgetc() and File::getchar()
...
This restores proper ^C behavior in the shell.
2023-08-02 14:46:47 +02:00
7983d63b8e
libos: Add documentation for os::File::BufferingMode
continuous-integration/drone/push Build is passing
2023-08-02 13:15:51 +02:00
b17793134e
libos: Let users change the buffering mode of a File
2023-08-02 11:54:47 +02:00
200bb6c240
kernel+libc+libos: Add inode type for sockets
2023-07-30 11:33:05 +02:00
4ed7ec5e93
libluna: Store SharedPtr's ref count in the object itself
continuous-integration/drone/push Build is passing
2023-07-30 11:32:46 +02:00
eeb9e16a74
libos: Make os::File a wrapper around stdio's FILE
...
continuous-integration/drone/push Build is passing
This way, os::File benefits from the same buffering as stdio.h does.
2023-07-22 12:40:02 +02:00
5458286309
libos: Add Process::exit()
continuous-integration/drone/push Build is passing
2023-07-21 21:21:08 +02:00
4439ef8ec6
sh: Add a system to easily add flexible shell builtins
continuous-integration/drone/push Build is passing
2023-07-21 20:44:01 +02:00
82411789e8
libos+apps: Add kill
continuous-integration/drone/push Build is passing
2023-07-10 22:17:05 +02:00
5c9503ac71
libos+cp: Add prompt functionality
continuous-integration/drone/push Build is passing
2023-07-08 18:30:39 +02:00
6d9ba8deb4
libos+apps: Make the vector argument more flexible
continuous-integration/drone/push Build is passing
2023-07-08 16:44:02 +02:00
bd757d204e
kernel+libos+libluna: Avoid copying and reallocation when creating Strings
...
continuous-integration/drone/push Build is passing
This is done by reusing the existing buffers in Vector and Buffer instances.
2023-07-02 19:30:25 +02:00
f052d8630d
libos: Use Vector::shallow_copy() in ArgumentParser
continuous-integration/drone/push Build is passing
2023-06-19 12:23:56 +02:00
2f08e0f5b0
libos: Make long value arguments use '=' and make value arguments' values always required
continuous-integration/drone/push Build is passing
2023-06-17 20:58:54 +02:00
da1439126a
libos: Correct wrong manpage section for execve()
continuous-integration/drone/push Build is passing
2023-06-09 23:35:23 +02:00
e4e501ecfe
libos: Add Process::wait()
continuous-integration/drone/push Build is passing
2023-06-09 23:12:31 +02:00
bc07cc94cb
libos: Document it entirely using Doxygen comments =D
...
continuous-integration/drone/push Build is passing
Also, add copyright information to individual files. This is going to be a hassle to do for EVERY file.
2023-06-09 22:45:06 +02:00
85896214ba
libos: Make File::read_all() read chunked blocks instead of one character at a time
...
continuous-integration/drone/push Build is passing
This results in a speedup of 0.23s -> 0.13s for Base64 encoding of /bin/ls.
2023-06-04 00:23:06 +02:00
89d7866abb
libos: Show the sticky bit on symbolic modes
2023-06-03 11:35:13 +02:00
d40654a00c
libos+ls: Allow calling ArgumentParser::short_usage() directly
continuous-integration/drone/push Build is passing
2023-05-28 21:57:04 +02:00
e864ef2d36
libos: Add a way to also list entry sizes, modes and mtimes
2023-05-28 21:51:50 +02:00
62e14e7580
kernel+libos+apps: Support block devices and disallow seeking character devices or pipes
continuous-integration/drone/push Build is failing
2023-05-26 20:27:47 +02:00
38fae0c97b
ls: Show file modes visually
continuous-integration/drone/push Build is passing
2023-05-26 18:22:50 +02:00
1a6ad11462
kernel+libc+libos+ls: Add readlink()
continuous-integration/drone/push Build is passing
2023-05-23 15:42:38 +02:00
7a8ef52408
libos: Support not following symlinks
2023-05-20 21:49:25 +02:00
1fa8aeecce
libos: Allow Process::exec to take a slice of StringViews instead of Strings as arguments
2023-05-20 12:47:10 +02:00
4d106b6b8c
libos: Add error handling to vector argument usage
continuous-integration/drone/push Build is passing
2023-05-13 13:22:49 +02:00
65d3195caa
libos: Allow ArgumentParser users to specify they want leftover arguments
continuous-integration/drone/push Build is passing
2023-05-13 13:22:10 +02:00
300d68088b
libos: Add FileSystem::stat()
continuous-integration/drone/push Build is passing
2023-05-12 23:47:20 +02:00
b08ebdc3cb
libos: Show "Options:" label even if --help and --version are the only
...
options
2023-05-06 22:05:08 +02:00
3eb78aa5f3
libos+init: Add a new Path class to handle both file descriptors and file paths
continuous-integration/drone/push Build is passing
2023-05-03 17:37:26 +02:00
0fad179485
apps+libc+libos: Remove _LUNA_SYSTEM_ERROR_EXTENSIONS and reorder headers
...
continuous-integration/drone/push Build is passing
libluna/libos headers can now go after errno.h, so there's no reason to keep them separate.
2023-05-02 10:51:53 +02:00
48df90e636
libos+apps: Use os::*print* instead of (f)printf
continuous-integration/drone/push Build is passing
2023-05-01 19:32:00 +02:00
a2303665fc
libos: Add os:: print(), println(), eprint(), and eprintln()
2023-05-01 19:31:15 +02:00
ac4bbd135b
libos: Add Directory::list()
continuous-integration/drone/push Build is passing
2023-04-28 22:41:44 +02:00
6c5d6aaf00
libos: Make remove_tree_at use os::Directory
continuous-integration/drone/push Build is passing
2023-04-28 21:16:44 +02:00
3e277b5d6f
libos: Introduce os::Directory
2023-04-28 21:16:43 +02:00
80914f0bb9
ArgumentParser: Add support for version information
continuous-integration/drone/push Build is passing
2023-04-28 16:33:05 +02:00
cb28e2a385
libos: Add a convenience function for opening a file or standard input
2023-04-26 20:41:03 +02:00
fb09eb97ce
libos: Add File::read_all() and File::read_all_as_string()
2023-04-26 20:34:09 +02:00
5b69ce554c
init: Add a few more configuration options for services
...
continuous-integration/drone/push Build is passing
Notably, redirecting a service's standard streams and waiting for a service to finish before continuing boot.
2023-04-25 21:00:12 +02:00
e378d8ee2f
Revert "libos: Make File::read_line optionally strip the ending newline"
...
continuous-integration/drone/push Build is passing
This should be done by the caller, as making libos do it will not return a different value if the line was empty or was EOF.
Fortunately, we now have String::trim.
2023-04-22 15:21:04 +02:00
63a2df112d
libos: Make File::read_line optionally strip the ending newline
2023-04-22 13:55:07 +02:00
e654ed6415
libos: Allow passing environment to Process::exec
2023-04-22 13:54:47 +02:00
eb58b4acc8
libos: Add support for --help to ArgumentParser
continuous-integration/drone/push Build is passing
2023-04-19 19:16:45 +02:00
d56e8baca5
libos+rm: Add recursive removal of directories
continuous-integration/drone/push Build is passing
2023-04-19 18:20:44 +02:00
05144f65d1
libos: Remove unused include
continuous-integration/drone/push Build is passing
2023-04-19 18:19:22 +02:00
02f8a50b9d
kernel: Replace unlink() with unlinkat()
continuous-integration/drone/push Build is passing
2023-04-18 19:36:29 +02:00
8560918931
libluna: Add Result<void>::from_syscall
continuous-integration/drone/push Build is failing
2023-04-18 18:49:24 +02:00