Commit Graph

287 Commits

Author SHA1 Message Date
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