2016-09-14 08:36:29 -04:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
errexit() {
|
|
|
|
echo "$1"
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
[ "$(uname -s)" == "Darwin" ] || errexit "This script can only be used on a Mac"
|
|
|
|
|
|
|
|
[ $# -eq 1 ] || errexit "Usage: $0 install|undo"
|
|
|
|
|
|
|
|
BUNDLE="bundles/$(cat VERSION)"
|
|
|
|
BUNDLE_PATH="$PWD/$BUNDLE"
|
|
|
|
CLIENT_PATH="$BUNDLE_PATH/cross/darwin/amd64/docker"
|
|
|
|
DATABASE="$HOME/Library/Containers/com.docker.docker/Data/database"
|
|
|
|
DATABASE_KEY="$DATABASE/com.docker.driver.amd64-linux/bundle"
|
|
|
|
|
|
|
|
[ -d "$DATABASE" ] || errexit "Docker for Mac must be installed for this script"
|
|
|
|
|
|
|
|
case "$1" in
|
2020-03-02 22:27:49 -05:00
|
|
|
"install")
|
|
|
|
[ -d "$BUNDLE" ] || errexit "cannot find bundle $BUNDLE"
|
|
|
|
[ -e "$CLIENT_PATH" ] || errexit "you need to run make cross first"
|
|
|
|
[ -e "$BUNDLE/binary-daemon/dockerd" ] || errexit "you need to build binaries first"
|
|
|
|
[ -f "$BUNDLE/binary-client/docker" ] || errexit "you need to build binaries first"
|
|
|
|
git -C "$DATABASE" reset --hard > /dev/null
|
|
|
|
echo "$BUNDLE_PATH" > "$DATABASE_KEY"
|
|
|
|
git -C "$DATABASE" add "$DATABASE_KEY"
|
|
|
|
git -C "$DATABASE" commit -m "update bundle to $BUNDLE_PATH"
|
|
|
|
rm -f /usr/local/bin/docker
|
|
|
|
cp "$CLIENT_PATH" /usr/local/bin
|
|
|
|
echo "Bundle installed. Restart Docker to use. To uninstall, reset Docker to factory defaults."
|
|
|
|
;;
|
|
|
|
"undo")
|
|
|
|
git -C "$DATABASE" reset --hard > /dev/null
|
|
|
|
[ -f "$DATABASE_KEY" ] || errexit "bundle not set"
|
|
|
|
git -C "$DATABASE" rm "$DATABASE_KEY"
|
|
|
|
git -C "$DATABASE" commit -m "remove bundle"
|
|
|
|
rm -f /usr/local/bin/docker
|
|
|
|
ln -s "$HOME/Library/Group Containers/group.com.docker/bin/docker" /usr/local/bin
|
|
|
|
echo "Bundle removed. Using dev versions may cause issues, a reset to factory defaults is recommended."
|
|
|
|
;;
|
2016-09-14 08:36:29 -04:00
|
|
|
esac
|