dragonfly/hack/install.sh

123 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
set -o nounset
set -o errexit
set -o pipefail
BIN_DIR="../bin"
CDN_BINARY_NAME=cdn
DFGET_BINARY_NAME=dfget
SCHEDULER_BINARY_NAME=scheduler
MANAGER_BINARY_NAME=manager
curDir=$(cd "$(dirname "$0")" && pwd)
cd "${curDir}" || return
. ./env.sh
install() {
case "${1-}" in
cdn)
install-cdn
;;
dfget)
install-dfget
;;
scheduler)
install-scheduler
;;
manager)
install-manager
esac
}
install-cdn() {
local installCdnDir="${INSTALL_HOME}/${INSTALL_CDN_PATH}"
echo "install: ${installCdnDir}"
createDir "${installCdnDir}"
cp "${BIN_DIR}/${GOOS}_${GOARCH}/${CDN_BINARY_NAME}" "${installCdnDir}"
createLink "${installCdnDir}/${CDN_BINARY_NAME}" /usr/local/bin/cdn
}
uninstall-cdn() {
echo "unlink /usr/local/bin/cdn"
test -e /usr/local/bin/cdn && unlink /usr/local/bin/cdn
}
install-dfget() {
local bin="${INSTALL_HOME}/${INSTALL_BIN_PATH}"
echo "install: ${bin}"
mkdir -p "${bin}"
cp "${BIN_DIR}/${GOOS}_${GOARCH}/${DFGET_BINARY_NAME}" "${bin}"
createLink "${bin}/${DFGET_BINARY_NAME}" /usr/local/bin/dfget
}
uninstall-dfget() {
echo "unlink /usr/local/bin/dfget"
test -e /usr/local/bin/dfget && unlink /usr/local/bin/dfget
}
install-scheduler() {
local bin="${INSTALL_HOME}/${INSTALL_BIN_PATH}"
echo "install: ${bin}"
mkdir -p "${bin}"
cp "${BIN_DIR}/${GOOS}_${GOARCH}/${SCHEDULER_BINARY_NAME}" "${bin}"
createLink "${bin}/${SCHEDULER_BINARY_NAME}" /usr/local/bin/scheduler
}
uninstall-scheduler() {
echo "unlink /usr/local/bin/scheduler"
test -e /usr/local/bin/scheduler && unlink /usr/local/bin/scheduler
}
install-manager() {
local bin="${INSTALL_HOME}/${INSTALL_BIN_PATH}"
echo "install: ${bin}"
mkdir -p "${bin}"
cp "${BIN_DIR}/${GOOS}_${GOARCH}/${MANAGER_BINARY_NAME}" "${bin}"
createLink "${bin}/${MANAGER_BINARY_NAME}" /usr/local/bin/manager
}
uninstall-manager() {
echo "unlink /usr/local/bin/manager"
test -e /usr/local/bin/manager && unlink /usr/local/bin/manager
}
createLink() {
srcPath="$1"
linkPath="$2"
echo "create link ${linkPath} to ${srcPath}"
test -e "${linkPath}" && unlink "${linkPath}"
ln -s "${srcPath}" "${linkPath}"
}
createDir() {
test -e "$1" && rm -rf "$1"
mkdir -p "$1"
}
main() {
case "${1-}" in
install)
install "${2-}"
;;
uninstall)
uninstall "${2-}"
;;
*)
echo "You must specify the subcommand 'install' or 'uninstall'."
;;
esac
}
main "$@"