Hello!

I would like to anounce my library, guile-bash.  With it, you can write
your bash functions in Scheme, like this:

(use-modules (gnu bash))
(define-bash-function (dtach-start-emacs)
  (unless (file-exists? "/tmp/emacs.dtach")
    #$[dtach -n /tmp/emacs.dtach emacs]))

This strange #$ is reader macro. To give a try, you should download
it from https://github.com/kaction/guile-bash, like this:

$ git clone git://github.com/kaction/guile-bash
$ cd guile-bash
$ autoreconf -if
$ ./configure
$ make
$ make install

Make sure, that directory, where Guile modules are installed
are in GUILE_LOAD_PATH. Locate libguile-bash.so
and do in your bash

$ enable -f /path/to/libguile-bash.so scm

Now you can copy snippet above to a file and make

$ scm /some/file/with/code.scm

Now you should have `dtach-start-emacs` function availiable.  To get
overview of what is availiable, see lisp/gnu/bash.scm Functions defined
with `define-ffi` and `define-public` are of interest.

About reader macro.  To get variable value, write `#$HOME`, to set

(set! #$HOME).

#$[echo foo] is just eval
#$(echo foo) captures output.

If you use Debian GNU/Linux, debianization is ready on
https://github.com/kaction/deb-guile-bash

I am very interested in your opinions.

[please keep me in CC]

--
Best regards, Dmitry Bogatov <[email protected]>,
Free Software supporter, esperantisto and netiquette guardian.
GPG: 54B7F00D

Attachment: pgpL4l1W5Znjo.pgp
Description: PGP signature

Reply via email to