worked poc
This commit is contained in:
Executable
+63
@@ -0,0 +1,63 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
CONFIG_FILE="${DEPLOY_CONFIG:-deploy-routeros.env}"
|
||||
if [ -f "$CONFIG_FILE" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
case "$CONFIG_FILE" in
|
||||
/*) . "$CONFIG_FILE" ;;
|
||||
*) . "./$CONFIG_FILE" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
: "${ROUTER_HOST:=192.168.88.1}"
|
||||
: "${ROUTER_USER:=admin}"
|
||||
: "${ROUTER_PORT:=22}"
|
||||
: "${ROUTER_IDENTITY_FILE:=}"
|
||||
: "${ROUTER_SCP_DIR:=/}"
|
||||
: "${REMOTE_IMAGE_NAME:=}"
|
||||
|
||||
IMAGE_PATH="${1:-}"
|
||||
if [ -z "$IMAGE_PATH" ]; then
|
||||
echo "Usage: $0 /path/to/ready-image.tar" >&2
|
||||
echo "This script only uploads the TAR. It never builds or deploys it." >&2
|
||||
exit 2
|
||||
fi
|
||||
[ -f "$IMAGE_PATH" ] || { echo "Ready image TAR not found: $IMAGE_PATH" >&2; exit 2; }
|
||||
case "$IMAGE_PATH" in
|
||||
*.tar) ;;
|
||||
*) echo "Expected a .tar image archive: $IMAGE_PATH" >&2; exit 2 ;;
|
||||
esac
|
||||
|
||||
command -v scp >/dev/null 2>&1 || { echo "scp is required" >&2; exit 2; }
|
||||
command -v ssh >/dev/null 2>&1 || { echo "ssh is required" >&2; exit 2; }
|
||||
|
||||
if [ -z "$REMOTE_IMAGE_NAME" ]; then
|
||||
REMOTE_IMAGE_NAME="$(basename "$IMAGE_PATH")"
|
||||
fi
|
||||
case "$REMOTE_IMAGE_NAME" in
|
||||
*'/'*|*'\\'*|*'"'*|*';'*|*'$'*|*'`'*)
|
||||
echo "REMOTE_IMAGE_NAME contains unsupported characters" >&2
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
|
||||
SSH_TARGET="${ROUTER_USER}@${ROUTER_HOST}"
|
||||
REMOTE_PATH="${ROUTER_SCP_DIR%/}/${REMOTE_IMAGE_NAME}"
|
||||
[ "$ROUTER_SCP_DIR" = "/" ] && REMOTE_PATH="/${REMOTE_IMAGE_NAME}"
|
||||
REMOTE_ROS_NAME="${REMOTE_PATH#/}"
|
||||
|
||||
printf '[upload] %s -> %s:%s\n' "$IMAGE_PATH" "$SSH_TARGET" "$REMOTE_PATH"
|
||||
if [ -n "$ROUTER_IDENTITY_FILE" ]; then
|
||||
scp -i "$ROUTER_IDENTITY_FILE" -P "$ROUTER_PORT" "$IMAGE_PATH" "${SSH_TARGET}:$REMOTE_PATH"
|
||||
ssh -i "$ROUTER_IDENTITY_FILE" -p "$ROUTER_PORT" "$SSH_TARGET" "/file/print without-paging where name=\"${REMOTE_ROS_NAME}\"" || true
|
||||
else
|
||||
scp -P "$ROUTER_PORT" "$IMAGE_PATH" "${SSH_TARGET}:$REMOTE_PATH"
|
||||
ssh -p "$ROUTER_PORT" "$SSH_TARGET" "/file/print without-paging where name=\"${REMOTE_ROS_NAME}\"" || true
|
||||
fi
|
||||
|
||||
echo "[upload] done"
|
||||
echo "RouterOS file: ${REMOTE_ROS_NAME}"
|
||||
echo "Nothing was built, imported, deployed or started."
|
||||
Reference in New Issue
Block a user