bb0989fdef
Shell: Implement sourcing scripts
2023-10-03 10:24:10 +03:00
94ce2c97be
Shell: Quick fix to not freeze for multiple seconds
...
When sync is writing to disk, it reserves whole disk to itself.
This commit makes Shell to read username only once from getpwuid().
We used to get username every time prompt was printed.
2023-09-29 19:20:48 +03:00
c84b66d078
Shell: String leading and trailing whitespace from commands
...
This fixes a bug of inserting empty argument if command had trailing
whitespace
2023-09-28 10:28:49 +03:00
fc953df281
Kernel/LibC: remove PATH resoltion from kernel
...
I have no idea why I had made PATH environment variable parsing
to be part of the kernel. Now the shell does the parsing and
environment syscall is no longer needed.
2023-09-23 03:08:14 +03:00
afe95be42f
Shell: Clean exit on ^D and use getchar()
...
Use getchar() instead of fread(&ch, 1, sizeof(char), stdin). This
is much cleaner.
2023-09-07 15:51:05 +03:00
b05cf9ef09
BuildSystem: Base sysroot is now distributed as a tar ball
...
This allows file and directory permissions work as intended.
cmake is now filled with 'sudo' but with sudo timeout this should be
fine.
2023-08-23 10:38:21 +03:00
a74eb357a1
Shell: hostname is not parsed from /etc/hostname
2023-08-23 10:38:21 +03:00
8eb71084f0
Shell: use process groups more properly
2023-08-22 14:54:50 +03:00
6ada36d3cb
Shell/init: We now use pgrp instead of pid and init open terminal
2023-08-22 11:37:04 +03:00
eb98d70a0b
Shell: command execution and parsing support piped commands
...
There is still problems with "blocking" builtin commands (time),
return value, ...
2023-08-17 12:05:38 +03:00
5bd7099b96
Shell: add basic printf test
2023-08-16 10:49:34 +03:00
0fa5401800
Shell: $? returns last return value
2023-08-15 09:17:46 +03:00
ba37183c9c
Shell: '\u' in PS1 is replaced with username corresponding to euid
2023-08-14 14:55:23 +03:00
2f298a1979
Shell: ^A moves cursor to the beginning of line
2023-08-14 12:26:22 +03:00
9fe878bbec
Shell: Print if the process exited because of a signal
2023-08-01 14:24:36 +03:00
5e434f5131
Kernel: Hardware exceptions now sends signals to userspace
2023-07-30 14:34:15 +03:00
00f1f30a08
Kernel: Userspace sets the foreground process and Shell handles ^C
2023-07-28 18:10:36 +03:00
adb14ba373
Kernel: Userspace signal handlers are now called one at a time
...
I added a syscall for telling the kernel when signal execution has
finished. We should send a random hash or id to the signal trampoline
that we would include in the syscall, so validity of signal exit can
be confirmed.
2023-07-23 13:34:53 +03:00
ad756c36fc
Kernel/LibC: Add SYS_KILL/kill()
2023-07-21 19:27:38 +03:00
dcd4d0daeb
Kernel/LibC: Add bareboness signals
...
You can now call raise() to raise a signal. Signal handlers are
not yet supported, but the handling works :)
2023-07-21 15:45:02 +03:00
683c2a68cd
Shell: $(...) expansion works now :)
2023-07-06 23:22:57 +03:00
ad98181069
Shell: you can call Shell -c ... to invoke the shell as interpreter
2023-07-06 23:22:49 +03:00
21bd87bb07
Userspace: Shell now has 'env' for printing environment
2023-07-06 10:32:43 +03:00
79450df04c
Userspace: Shell imporove 'time' command
2023-07-06 09:45:04 +03:00
7f8b7b811e
Userspace: Shell now has time builtin
2023-07-06 00:39:04 +03:00
54f89cba33
Userspace: Shell now processes $ arguments
2023-06-19 01:39:24 +03:00
de88f60d1a
Userspace: Shell argument parsing now appriciates quotes
2023-06-19 01:07:00 +03:00
f7060970e6
Userspace: Shell argument parse now results in BAN::String
2023-06-19 00:34:44 +03:00
e7a98ac6cc
Userspace: Shell now sets SHELL environment variable
2023-06-18 23:35:51 +03:00
38dff41e25
Userspace: Shell processes PS1 '\~' as cwd and implement cd
2023-06-12 02:03:13 +03:00
b2de706693
Userspace: Shell now uses PS1 as prompt if set
2023-06-12 00:45:47 +03:00
e001eecb7b
Userspace: add exit to shell
2023-06-09 01:51:23 +03:00
2c18adbddd
Userspace: add ^L support for shell
2023-06-09 01:24:33 +03:00
064ce568c2
Kernel: add basic support for environment variables
...
exec functions will search files from PATH
2023-06-05 22:51:02 +03:00
3fc2c3529a
Shell: load old termios for process execution
2023-06-05 21:12:08 +03:00
2f2c298c68
Shell: add bareboness utf8 support
...
This should work as long as TTY provides only valid utf8.
If the utf is invalid, assertion fails and the shell dies.
2023-06-05 18:55:22 +03:00
90e48970e6
Shell: we now support left/right arrows
2023-06-05 18:24:41 +03:00
9d64dbd5c2
Kernel/LibC: add SYS_STAT and stat(), lstat()
2023-06-05 14:37:14 +03:00
1f36ed0cf9
Userspace: Start work on proper shell
2023-06-05 01:42:57 +03:00
cb359a05dc
BuildSystem: link libraries when they change
...
This also fixed the need for manual linkin on firt build
2023-05-31 23:01:40 +03:00
245dff8027
Shell: we now link BAN (we can't use it though)
2023-05-26 22:31:21 +03:00
0ab3332ad3
Userspace: Start work on shell
2023-05-26 22:31:21 +03:00