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/gowould 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
execvea 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