#!/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_.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