Jan Nieuwenhuizen
b8b170530c
bournish: Add tar, from Guile100 challenge by Mark Weaver.
...
See https://github.com/spk121/guile100
* bin/tar.in: New file.
* configure: Produce bin/tar.
* .gitignore: Ignore it.
* makefile (bin/tar): New target.
* gash/tar.scm: New file.
* gash/ustar.scm: New file.
* build-aux/build-guile.sh: Compile new files.
2018-10-27 11:30:45 +02:00
Jan Nieuwenhuizen
019464acf6
fix: set -e.
2018-10-21 16:13:29 +02:00
Jan Nieuwenhuizen
13cb50af60
gash: resurrect.
2018-10-21 15:24:24 +02:00
Jan Nieuwenhuizen
0f5b538c3a
geesh: initial integration.
...
GUILE_LOAD_PATH=$HOME/src/geesh:$GUILE_LOAD_PATH
GUILE_LOAD_COMPILED_PATH=$HOME/src/geesh:$GUILE_LOAD_COMPILED_PATH
bin/gash --parse -c 'echo boo | sed s,o,O, | grep .'
bin/gash --geesh --parse -c 'echo boo | sed s,o,O, | grep .'
2018-10-21 12:45:51 +02:00
Jan Nieuwenhuizen
9462aaa163
checkpoint
2018-07-16 07:50:28 +02:00
Jan Nieuwenhuizen
292fbc5ecb
test/if.sh, test/if2.sh -- weird
2018-07-15 23:27:58 +02:00
Jan Nieuwenhuizen
6468b04791
refactor WORD...bummer: word-for-test-assign-sh word-for-test-if-sh
2018-07-15 23:01:52 +02:00
Jan Nieuwenhuizen
24c35cc5d9
checkpoint
2018-07-15 21:44:15 +02:00
Jan Nieuwenhuizen
cbd13fdc88
checkpoint
2018-07-15 20:49:52 +02:00
Jan Nieuwenhuizen
e7bfd347fa
checkpoint
2018-07-15 20:47:09 +02:00
Jan Nieuwenhuizen
83f20d1ff8
flatten-fu
2018-07-15 20:06:19 +02:00
Jan Nieuwenhuizen
e9a57a899c
more for-progress
2018-07-15 18:39:17 +02:00
Jan Nieuwenhuizen
bfc39b1a18
test: implement -n, -z, !=.
2018-07-15 18:19:56 +02:00
Jan Nieuwenhuizen
8f8ba68c54
resurrect set -x
2018-07-15 18:18:34 +02:00
Jan Nieuwenhuizen
85b90e8537
job: disable backgrounding
2018-07-15 16:32:43 +02:00
Jan Nieuwenhuizen
e6e03c6da2
parser: handle substitution in for sequence.
2018-07-15 16:08:26 +02:00
Jan Nieuwenhuizen
c32034d13d
command, builtin, glob, echo cleanup and fixes
2018-07-15 13:43:52 +02:00
Jan Nieuwenhuizen
d065723221
parser: refactor, use `pipeline' instead of `expression'.
2018-07-15 12:49:59 +02:00
Jan Nieuwenhuizen
9623e014f0
builtins: [: New command.
...
* gash/builtins (bracket-command): New function.
(%builtin-commands): Add it.
2018-07-15 12:23:27 +02:00
Jan Nieuwenhuizen
4bb60cc4c3
parse: handle empty script WIP
2018-07-14 23:16:27 +02:00
Jan Nieuwenhuizen
b20306e123
builtins: grep: New command.
...
* gash/guix-build-utils.scm (<grep-match>): New record type.
(grep): New function.
* gash/builtins.scm (grep-command): New command.
(%builtin-commands): Add it.
2018-07-14 23:16:27 +02:00
Jan Nieuwenhuizen
0cab9321b2
builtins: test: Enhance with file tests.
...
* gash/guix-build-utils.scm (directory-exists?, executable-file?,
symbolic-link?): Import from Guix.
* gash/builtins.scm (test-command): Use them to enhance with file test.
2018-07-14 23:16:27 +02:00
Jan Nieuwenhuizen
863b3b5908
builtins: test: New command.
...
* gash/builtins.scm (test-command): New command.
(%builtin-commands): Add it.
(builtin, command, doublequotes, expression, for, glob,
singlequotes, substitution): Move from peg.scm.
* gash/peg.scm: Remove them.
2018-07-14 23:16:13 +02:00
Jan Nieuwenhuizen
48373edb3f
WIP: IF hack
2018-07-14 22:48:55 +02:00
Jan Nieuwenhuizen
de6d653c7c
builtins: type: New command.
...
* gash/builtins.scm (type-command): New function.
(%builtin-commands): Add it.
2018-07-14 22:48:55 +02:00
Jan Nieuwenhuizen
677deaf9b3
builtins: command: New command.
...
* gash/builtins.scm (command-command): New command.
(%builtin-commands): Add it.
(builtin): Move from peg.
* gash/peg.scm (builtin): Remove.
2018-07-14 22:48:42 +02:00
Jan Nieuwenhuizen
0408463a13
bah, some uninformed error handling. WIP
2018-07-14 22:48:42 +02:00
Jan Nieuwenhuizen
870fc792d7
debug du WIP
2018-07-14 22:48:42 +02:00
Jan Nieuwenhuizen
2c30f3c4c6
builtins: find: First naive implementation.
...
* gash/builtins.scm (find-command-implementation): New function.
(find-command): New command.
(%builtin-commands): Add it.
* gash/guix-build-utils.scm (file-name-predicate, find-files): Import
from Guix.
2018-07-14 22:48:42 +02:00
Jan Nieuwenhuizen
e0169d0acd
builtins: Support \non-builtin escape.
...
* gash/peg.scm (builtin): Add #:prefer-builtin? keyword argument.
(transform): Support \non-builtin escape.
2018-07-14 15:57:02 +02:00
Jan Nieuwenhuizen
e5c6324d82
remove debugging WIP:
2018-07-14 15:56:46 +02:00
Jan Nieuwenhuizen
43d418fab1
some builtin progress WIP
2018-07-14 15:41:03 +02:00
Jan Nieuwenhuizen
97a95ee002
builtins: cd: Support `cd -'.
...
* gash/builtins.scm (cd-command): Support `cd -'.
2018-07-14 15:23:52 +02:00
Jan Nieuwenhuizen
56a36baee5
factor-out environment.
...
* gash/environment.scm: New file.
* build-aux/build-guile.sh (SCM_FILES): Add it.
* gash/peg.scm: Include it.
(assignment, %global-variables, set-shell-opt!, variable): Remove.
2018-07-14 15:23:52 +02:00
Jan Nieuwenhuizen
23a13b0890
builtins: resurrect pwd WIP
2018-07-14 15:23:52 +02:00
Jan Nieuwenhuizen
3ea368ab2f
resurrect help WIP
2018-07-14 15:23:52 +02:00
Jan Nieuwenhuizen
40aa82fca9
builtins: ls: Support -a,--all,-1,--one-file-per-line,-h,--version.
...
* gash/bournish-commands.scm (ls-command-implementation): Support
-a,--all,-1,--one-file-per-line,-h,--version.
2018-07-14 15:23:21 +02:00
Jan Nieuwenhuizen
512b848b11
build: Add config.scm.in.
...
* gash/config.scm.in:
* configure: Use it to generate gash/config.scm
* .gitignore: Ignore generated file.
* gash/gash.scm (display-version): Use it.
* build-aux/build-guile.sh: Compile it.
2018-07-14 15:10:44 +02:00
Jan Nieuwenhuizen
c896015068
resurrect builtins: WIP
2018-07-14 13:34:10 +02:00
Rutger van Beusekom
f5339a09f5
WIP: marginal
2018-07-14 12:34:42 +02:00
Jan Nieuwenhuizen
4d3751f654
resurrect builtins: WIP
2018-07-14 12:24:51 +02:00
Jan Nieuwenhuizen
f3c8c2c7f0
exit-stati: WIP
2018-07-14 10:20:05 +02:00
Jan Nieuwenhuizen
42fbcb942a
fix exit-status in `command'
2018-07-14 09:46:30 +02:00
Jan Nieuwenhuizen
ff985aa083
verder aangehaakt
2018-07-14 09:34:57 +02:00
Jan Nieuwenhuizen
20196ccaf0
further WIP: resurrect interactive mode
2018-07-14 09:08:20 +02:00
Jan Nieuwenhuizen
1174445a08
more merge fu
2018-07-14 08:51:12 +02:00
Jan Nieuwenhuizen
f98637b8aa
oops, merge fix
2018-07-14 08:29:51 +02:00
Rutger van Beusekom
7054858d9a
checkpoint
2018-07-13 22:54:22 +02:00
Rutger van Beusekom
d5e7cb691d
checkpoint
2018-07-13 22:54:22 +02:00
Rutger van Beusekom
745757cfd0
WIP FOO => rewrite me harder
2018-07-13 22:54:22 +02:00
Jan Nieuwenhuizen
6aa17dd4ac
cat: Support multiple arguments, support "-"
...
* gash/bournish-commands.scm (cat-implementation): Support multiple
arguments, support "-".
(wrap-command): New function.
2018-07-05 06:17:34 +02:00
Jan Nieuwenhuizen
b8e41cfa55
typos
2018-07-04 21:11:27 +02:00
Jan Nieuwenhuizen
8c441105fe
bournish: cp, rm: handle exit stati.
2018-07-04 21:04:36 +02:00
Jan Nieuwenhuizen
d920fe1b4a
oops: bugfix `cp' FIXUP: bournish commit.
2018-07-04 20:54:30 +02:00
Jan Nieuwenhuizen
f5ee21eb36
Update help and root prompt.
2018-07-04 20:35:28 +02:00
Jan Nieuwenhuizen
836f7627b2
Import bournish commands from GNU Guix.
...
* AUTHORS: New file.
* gash/bournish-commands.scm: New file. Imported and adapted from GNU
Guix.
* gash/bournish-commands.scm: Likewise.
* gash/gash.scm (%commands): Add commands from Bournish.
2018-07-04 20:03:11 +02:00
Jan Nieuwenhuizen
0bc6de34d1
bugfix: test/22-semi-pipe-exit-0.sh
2018-07-04 19:17:52 +02:00
Jan Nieuwenhuizen
795b059373
Add -e, -x options. Use -x for running tests.
2018-07-04 06:58:01 +02:00
Jan Nieuwenhuizen
61ee206b8d
softcode --debug levels.
2018-07-03 21:07:21 +02:00
Jan Nieuwenhuizen
cda9eda403
implement set -x.
2018-07-03 20:56:03 +02:00
Jan Nieuwenhuizen
f047fd2d2a
exit: new builtin.
2018-07-03 20:56:03 +02:00
Jan Nieuwenhuizen
c4ea4457f9
implement set -e.
2018-07-03 20:56:03 +02:00
Jan Nieuwenhuizen
567170d226
variables: use string for key, value.
2018-07-03 20:20:04 +02:00
Jan Nieuwenhuizen
b01c5da8ac
Revert "non builtin hax0r"
...
This reverts commit 29a54650ab
.
2018-07-03 19:59:52 +02:00
Jan Nieuwenhuizen
867d83bb69
gash -c COMMAND: exit status fix0r
2018-07-03 06:39:02 +02:00
Rutger van Beusekom
29a54650ab
non builtin hax0r
2018-07-02 20:18:59 +02:00
Rutger van Beusekom
4ef3a941aa
WIP: status:exit-val
2018-07-02 20:05:50 +02:00
Rutger van Beusekom
054db72e94
WILDE PETS
2018-07-02 19:55:19 +02:00
Jan Nieuwenhuizen
462f8ce95f
handle exit stati WIP
2018-07-02 19:11:06 +02:00
Jan Nieuwenhuizen
d79936f561
Refactor builtin commands.
...
* gash/gash.scm (main): Handle --prefer-builtins.
(display-help): Mention it.
(bg-command, cd-command, echo-command, pwd-command, fg-command): New
functions.
(%commands): New variable.
(builtin): Use it.
2018-07-02 19:02:52 +02:00
Rutger van Beusekom
01bfb484dc
allow reserved words "everywhere"
2018-07-02 08:39:24 +02:00
Rutger van Beusekom
32f1d25170
add -c STRING
2018-07-02 08:35:10 +02:00
Rutger van Beusekom
e3d564fc4c
fix spawn to use no input or just the first
2018-07-01 14:04:23 +02:00
Jan Nieuwenhuizen
1b56f8cb2f
BUGS: New file. Fixed one.
2018-06-30 07:08:39 +02:00
Jan Nieuwenhuizen
a14c7c7360
Use pretty-print to display error tree.
...
* gash/peg.scm (parse): Use pretty-print to display error tree.
(parse-): Likewise.
2018-06-30 06:36:54 +02:00
Jan Nieuwenhuizen
df4f7971aa
updates from verum/gaiag.
2018-06-29 20:18:02 +02:00
Rutger van Beusekom
ca01e904d3
generalize pipe for multiple in- and out-puts
2018-02-22 16:17:43 +01:00
Rutger van Beusekom
b6c566e989
support scheme in the pipeline
2018-02-17 21:15:41 +01:00
Rutger van Beusekom
9856ad7619
fix builtins
2017-12-07 23:07:31 +01:00
Rutger van Beusekom
f171f79ec9
substitution
2017-12-07 23:07:31 +01:00
Rutger van Beusekom
2446a63281
catch all errors
2017-12-07 23:07:31 +01:00
Rutger van Beusekom
6e556508f5
checkpoint
2017-12-07 23:07:31 +01:00
Rutger van Beusekom
e31829a757
substitution
2017-12-07 23:07:31 +01:00
Rutger van Beusekom
57b93d2902
substitution WIP
2017-12-07 23:07:31 +01:00
Rutger van Beusekom
0a75234e52
complete rename from anguish to gash
2017-12-07 23:07:31 +01:00
Rutger van Beusekom
1a42685197
generalized gash for any call location
2017-12-07 23:07:30 +01:00
Rutger van Beusekom
2e3b805f6a
introduce gash
2017-12-07 23:07:30 +01:00