This code is unmaintained and more significantly, does not work. It is here for historical purposes only.
A very basic and rough implementation of variant symlinks using go-fuse
With time this will accept mount requests of the form:
var-sym-fs <ROOT_DIR> <ENV_VAR_NAME> <MOUNT_POINT>
So for example:
var-sym-fs /home/myitcv/.gos GO_VERSION /home/myitcv/go
with the command:
GO_VERSION=go1.2.1 ls /home/myitcv/go
would list the contents of /home/myitcv/.gos/go1.2.1
.
Furthermore (and this is potentially the most powerful use case), PATH
, GOPATH
etc could be defined to include paths
that are variant symlinks. This would do away with the need for gvm
,
rbenv
and other such version managers. Indeed it would also do away with the
need for many package managers (slight caveat here because there are some important use cases var-sym-fs
would not
handle that gvm pkgset
does, for example local pkgset
's)
Work in progress. Currently blocked on two critical items:
- Cannot
execve
a file on the mount. Blocked on an answer from the LKML - A slight change to
github.com/hanwen/go-fuse
See the top-level LICENSE
file