Because it looks cooler.
This way its easy to keep all the information about the function in
one place, and it makes it easier/more interesting to add new
functions later.
As of now, when using `-r' or `-R', relative directories can be used.
This *does not* include locations starting with `~', those still need
to be handled by your shell.
Because every repo is treated as a possible relative path, and thus
passed on to `realpath', the paths have become very uniform. This
means that it will now only register and unregister paths that don't
have a trailing `/'. This is not true during usage, so those paths
still work, but they can't be removed by gitto, and adding them again
will create a duplicate entry.
* gitto/Makefile (objects): Add `path.scm' and `path.go'.
(.PHONY): Add `all' as a phony target.
(all): New target, compiles all `.go' targets.
($(filter %.go,$(objects))): Use `env' to run guild so that include
paths are setup properly.
* gitto/main.scm (gitto): Use new `(gitto path)' module, it contains
the `realpath' function.
(register-repository):
(remove-repository): Always pass REPOSITORY through `realpath' and
use the result.
* gitto/path.scm: New file. Loads the `libguile-gitto-path' extension
and exports its `realpath' function.
* src/Makefile (CFLAGS):
(LDFLAGS): Use `pkg-config' to gather the necessary values for guile.
(libguile-gitto-path.so): New guile extension, wraps the `readline'
POSIX function.
* src/gitto-path.c: New file, wraps and exports the `realpath' POSIX
function from `stdlib.h'.