Files
python_charts/startup.sh
T
thePR0M3TH3AN 040b45b093 Refactor imports in chart scripts to use package-qualified paths
Updated import statements in `bitcoin_m2_chart.py` and `lagged_oil_unrate_chart_styled.py` to use package-qualified paths for better clarity and consistency. Cleaned up code formatting for improved readability. Added a new output image file for the lagged oil-unrate chart.
2025-05-31 10:09:37 -04:00

50 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# -------------------------------------------------------------------
# startup.sh — install deps globally, fetch data, then run command
# Usage:
# ./startup.sh [options] # passes options to default plot script
# ./startup.sh <script> [args] # runs specified script with system Python
# Examples:
# ./startup.sh --offset 12 --end 2025-05-31 --extend-years 5
# ./startup.sh pytest -q
# -------------------------------------------------------------------
set -euo pipefail
REQ_FILE="requirements.txt"
DATA_DB="data/fred.db"
DEFAULT_MODULE="scripts.lagged_oil_unrate_chart_styled"
# 1) Ensure pip & setuptools are up to date
echo "🛠 Upgrading pip & setuptools…"
pip install --upgrade pip setuptools
# 2) Install project dependencies globally
echo "📦 Installing dependencies from $REQ_FILE…"
pip install --upgrade -r "$REQ_FILE"
# 3) Ensure data exists
if [[ ! -f "$DATA_DB" ]]; then
echo "🔄 Data not found—downloading FRED series…"
python -m scripts.refresh_data
fi
# 4) Dispatch to the right command
if [[ $# -eq 0 ]]; then
# no args → run default plot module with offset 18
CMD=(python -m "$DEFAULT_MODULE" --offset 18)
elif [[ "$1" == --* ]]; then
# args start with -- → forward to default plot module
CMD=(python -m "$DEFAULT_MODULE" "$@")
else
# first token is script or other command
if [[ -f "$1" || "$1" == *.py ]]; then
# If they explicitly say “scripts/whatever.py …” or “some_test.py …”, run as script
CMD=(python "$@")
else
CMD=("$@")
fi
fi
echo "🚀 Executing: ${CMD[*]}"
exec "${CMD[@]}"