Index: appfs-cache ================================================================== --- appfs-cache +++ appfs-cache @@ -89,12 +89,41 @@ fi call_appfsd --tcl 'file delete -force -- {*}[glob -directory $::appfs::cachedir {[0-9a-f][0-9a-f]}]' || return 1 call_appfsd --sqlite3 'DELETE FROM sites; DELETE FROM packages; DELETE FROM files; VACUUM;' || return 1 } + +function install() { + local site packages + local package packagedir + + site="$1" + shift + + packages=("$@") + + if [ -z "${site}" -o -z "${packages[*]}" ]; then + echo "usage: appfs-cache install ..." >&2 + + return 1 + fi + + for package in "${packages[@]}"; do + packagedir="/opt/appfs/${site}/${package}/platform/latest" + + ## XXX:TODO: Allow installation to other locations + ln -s "${packagedir}"/bin/* /bin/ + done + + return 0 +} case "$1" in + install) + shift + install "$@" || exit 1 + ;; invalidate) invalidate || exit 1 ;; remove-site) remove_site "$2" || exit 1