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 <