123 lines
2.5 KiB
Bash
Executable File
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 "$@"
|