apm-wo-analysis/scripts/drop_folder_upload.sh

30 lines
1.2 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# apm-wo-analysis local drop-folder uploader (optional zero-touch ingestion).
#
# Mirrors the stampli-drop-folder pattern. When deployed, BOTH this script and
# the watched folder must live OUTSIDE ~/Documents (macOS TCC sandbox — see the
# macos-tcc-launchd memory). Suggested install locations:
# script: ~/Library/Application Support/seahaven/apm-wo-drop/upload.sh
# folder: ~/APM-WO-Drop
#
# Triggered by the launchd agent (scripts/com.seahaven.apm-wo-drop.plist) on a
# WatchPaths change. Uploads each new export to the raw/ prefix, then moves it to
# a local processed/ subfolder. Uses a least-privilege local AWS profile scoped
# to s3:PutObject on raw/ only. The classifier Lambda is S3-triggered from there.
set -euo pipefail
DROP_DIR="${APM_WO_DROP_DIR:-$HOME/APM-WO-Drop}"
PROCESSED_DIR="$DROP_DIR/processed"
BUCKET="apm-wo-analysis-exports-328440206208"
PROFILE="${APM_WO_AWS_PROFILE:-apm-wo-drop}"
mkdir -p "$PROCESSED_DIR"
shopt -s nullglob
for f in "$DROP_DIR"/*.xlsx "$DROP_DIR"/*.csv; do
[ -e "$f" ] || continue
name="$(basename "$f")"
aws --profile "$PROFILE" s3 cp "$f" "s3://${BUCKET}/raw/${name}"
mv "$f" "$PROCESSED_DIR/$name"
done