58 lines
1.7 KiB
Bash
58 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
. "$ROOT_DIR/build/common.sh"
|
|
|
|
usage() { cat <<'EOF'
|
|
Publish client package to FTP server
|
|
|
|
Usage: publish_client.sh --version YYYYMMDD --server HOST --user USER --password PASS [--port 21]
|
|
|
|
It uploads: setup.sh, argus-metric_<YYYYMMDD>.tar.gz, LATEST_VERSION to the FTP share root.
|
|
EOF
|
|
}
|
|
|
|
VERSION=""; HOST=""; USERNAME=""; PASSWORD=""; PORT=21
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--version) VERSION="$2"; shift 2;;
|
|
--server) HOST="$2"; shift 2;;
|
|
--user) USERNAME="$2"; shift 2;;
|
|
--password) PASSWORD="$2"; shift 2;;
|
|
--port) PORT="$2"; shift 2;;
|
|
-h|--help) usage; exit 0;;
|
|
*) err "unknown arg: $1"; usage; exit 1;;
|
|
esac
|
|
done
|
|
|
|
[[ -n "$VERSION" && -n "$HOST" && -n "$USERNAME" && -n "$PASSWORD" ]] || { usage; exit 1; }
|
|
|
|
CLIENT_DIR="$ROOT_DIR/artifact/client/$VERSION"
|
|
TAR_NAME="argus-metric_${VERSION}.tar.gz"
|
|
PKG="$CLIENT_DIR/$TAR_NAME"
|
|
SETUP_SRC="$ROOT_DIR/../src/sys/tests/private/argus/metric/ftp/share/setup.sh"
|
|
ALT_SETUP="$ROOT_DIR/../src/metric/client-plugins/all-in-one-full/scripts/setup.sh"
|
|
|
|
[[ -f "$PKG" ]] || { err "missing client package: $PKG"; exit 1; }
|
|
if [[ ! -f "$SETUP_SRC" ]]; then
|
|
if [[ -f "$ALT_SETUP" ]]; then
|
|
SETUP_SRC="$ALT_SETUP"
|
|
else
|
|
err "missing setup.sh (checked $SETUP_SRC and $ALT_SETUP)"; exit 1
|
|
fi
|
|
fi
|
|
|
|
log "Uploading setup.sh"
|
|
curl -u "$USERNAME:$PASSWORD" -sfT "$SETUP_SRC" "ftp://$HOST:$PORT/setup.sh"
|
|
|
|
log "Uploading client tar: $TAR_NAME"
|
|
curl -u "$USERNAME:$PASSWORD" -sfT "$PKG" "ftp://$HOST:$PORT/$TAR_NAME"
|
|
|
|
log "Updating LATEST_VERSION -> $VERSION"
|
|
printf "%s" "$VERSION" | curl -u "$USERNAME:$PASSWORD" -sfT - "ftp://$HOST:$PORT/LATEST_VERSION"
|
|
|
|
log "Publish done"
|
|
|
|
exit 0
|