git.fiddlerwoaroof.com
builder.sh
784f6366
 set -eu -o pipefail
 
 cleanup() {
   if [[ -d /homeless-shelter ]]; then
     rm -rf /homeless-shelter
   fi
 }
 trap cleanup EXIT
 
 export PATH
 add_path() {
   PATH="$PATH:$1"
 }
 add_path "$coreutils/bin"
 add_path "$findutils/bin"
 add_path "$git/bin"
 add_path "$sbcl/bin" 
 add_path "$curl/bin" 
 
 mkdir -p "$out"/bin/multicall
 
 BUILD_DIR="$out/build"
 mkdir "$BUILD_DIR"
 cd "$BUILD_DIR"
 
 cp -R "$src" "$BUILD_DIR/src"
 chmod -R +rwX "$BUILD_DIR/src"
 ls -dl $PWD
 mkdir build quicklisp
 
 cd "$BUILD_DIR/src"
 
 curl -O https://beta.quicklisp.org/quicklisp.lisp
 sbcl \
   --eval "(require :asdf)" \
   --eval "(setf asdf:*user-cache* (truename #p\"$BUILD_DIR/build/\"))" \
   --load quicklisp.lisp \
   --eval "(quicklisp-quickstart:install :path (truename \"$BUILD_DIR/quicklisp/\"))"
 
 sbcl \
   --eval "(require :asdf)" \
   --eval "(setf asdf:*user-cache* (truename #p\"$BUILD_DIR/build/\"))" \
   --load "$BUILD_DIR/quicklisp/setup.lisp" \
   --eval '(ql:quickload :buildapp)' \
   --eval '(buildapp:build-buildapp)'
 
 ./buildapp \
   --output "$out/bin/multicall/uclip" \
   --eval "(require :asdf)" \
   --eval "(setf asdf:*user-cache* (truename #p\"$BUILD_DIR/build/\"))" \
   --eval "(format t \"~3&ASDF:*user-cache*: ~s~3%\" asdf:*user-cache*)" \
   --load "$BUILD_DIR/quicklisp/setup.lisp" \
   --asdf-tree "$BUILD_DIR/src/" \
   --eval "(ql:quickload :uclip)" \
   --dispatched-entry /uclip::paste \
   --dispatched-entry ucopy/uclip::copy \
   --dispatched-entry upaste/uclip::paste \
   --dispatched-entry uswitch/uclip::switch-clipboards \
   --dispatched-entry upop/uclip::pop-clipboard \
   --dispatched-entry uls/uclip::list-clipboards \
   --dispatched-entry ushow/uclip::show-clipboard-contents \
   --dispatched-entry uclear/uclip::clear-clipboard
 
 cd "$out/bin"
 
 xargs  -n1  ln -fsv multicall/uclip <<EOF
 ucopy
 upaste
 uswitch
 upop
 uls
 ushow
 uclear
 EOF