Fix first-run blockers: MOVIES_DIR path, CAM_NAME, .env for Python, eval safety

daily_sunrise_video.sh: use \$MOVIES_DIR instead of \$BASE_DIR/movies so the
override in sky-cam.conf is respected when videos live on a separate drive.

capture.sh: default camera name falls back to \$SUNRISE_CAM (not the
undefined \$CAM_NAME) when no argument is passed.

sunrise2mm.py: also loads .env after sky-cam.conf so Mattermost credentials
moved to .env are actually visible to the upload script.

sunrise.py: raise a clear error message when LATITUDE/LONGITUDE/TIMEZONE
are missing from sky-cam.conf instead of an opaque KeyError.

4-seasons.sh, montage-mvt.sh: capture season_info.py output before eval so
a Python failure exits cleanly with a diagnostic message rather than
silently continuing with undefined variables.

bootstrap.sh: add system package install step (ffmpeg bc fonts-dejavu) and
show the .env setup step after install.sh generates .env.example.

README.md: correct Python package names and add fonts-dejavu dependency.

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
This commit is contained in:
Claude
2026-04-19 23:37:10 +00:00
parent a1b9ffa8ee
commit a1cf1304e4
8 changed files with 28 additions and 8 deletions
+4
View File
@@ -18,6 +18,10 @@ def _read_conf(path):
conf = _read_conf(_here / 'sky-cam.conf')
for _key in ('LATITUDE', 'LONGITUDE', 'TIMEZONE'):
if _key not in conf:
raise SystemExit(f"sunrise.py: {_key} not set in sky-cam.conf")
latitude = float(conf['LATITUDE'])
longitude = float(conf['LONGITUDE'])
tz = pytz.timezone(conf['TIMEZONE'])