123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- -*- mode: org -*-
- * About
- Guile-Daemon is a small Guile program that loads your initial
- configuration file, and then reads and evaluates Guile expressions that
- you send to a FIFO file. That's basically it.
- Normally, =guile-daemon= will not exit: it's a daemon, so it just "sits"
- on a FIFO file waiting for commands.
- Along with =guile-daemon= program, Guile-Daemon provides =gdpipe= shell
- script that redirects commands to the default FIFO file.
- Finally, you can also connect to the daemon using a socket file (for
- example, with =M-x geiser-connect-local= if you use [[https://github.com/jaor/geiser][Geiser]]).
- By default, socket and FIFO files are placed in
- [[file:$XDG_CONFIG_HOME/guile-daemon/run]] directory
- ([[file:$HOME/.config/guile-daemon/run]] if XDG_CONFIG_HOME is not set).
- * Usage
- Simply run =guile-daemon= (remember, it won't fork!), and then use
- =gdpipe= to evaluate anything, like this:
- #+BEGIN_SRC sh
- gdpipe '(format #t "load path: ~a~%" %load-path)'
- #+END_SRC
- (on a console where =guile-daemon= is running you should see the load
- path)
- I use Guile-Daemon as an OSD daemon, see [[https://github.com/alezost/guile-daemon-config][my config]].
- * Building from Git
- Requirements for building from git:
- - [[http://gnu.org/software/guile/][GNU Guile]]
- - [[http://gnu.org/software/autoconf/][GNU Autoconf]]
- - [[http://gnu.org/software/automake/][GNU Automake]]
- Run =./autogen.sh= to generate the build system infrastructure. After
- that, the program can be built and installed with the usual sequence of
- commands of the GNU Build System:
- #+BEGIN_SRC sh
- $ ./configure
- $ make
- # make install
- #+END_SRC
- ** Pre-installation environment
- It is possible to use/test Guile-Daemon without installing (i.e., after
- running =make= but before running =make install=) with the help of
- =pre-inst-env= script in the top build tree, like this:
- #+BEGIN_SRC sh
- $ ./pre-inst-env guile-daemon &
- $ ./pre-inst-env gdpipe ...
- #+END_SRC
- If you live in Emacs, you may find =pre-inst-env.el= more useful. If
- you load this file (for example, with =M-x load-file=), it will set the
- required environment inside Emacs, so you can run =guile-daemon= and
- =gdpipe= in =M-x shell= without prefixing them with =.../pre-inst-env=.
- And more importantly, you can start Geiser and use (daemon ...) modules
- there!
- * Building/installing with Guix
- The latest version of Guile-Daemon can be installed with [[http://www.gnu.org/software/guix/][GNU Guix]]:
- [[https://www.gnu.org/software/guix/packages/g.html#guile-daemon]].
- Also this repository contains [[file:guix.scm]] file which can be used to
- build/install Guile-Daemon using the git checkout, or to make a
- development environment for it (see the commentary in that file for more
- details).
|