diff --git a/VERSION b/VERSION index 9f42295..528bd04 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.37 +0.1.39 diff --git a/scripts/classroom-provision b/scripts/classroom-provision index 6dd8986..efe7fc7 100755 --- a/scripts/classroom-provision +++ b/scripts/classroom-provision @@ -18,12 +18,14 @@ log() { log "starting" +chrome_ok=true + if /usr/local/bin/classroom-chrome-setup; then : else - log "WARNING: Google Chrome is not installed. The Browser button will" - log "WARNING: not work until this succeeds. Retrying at the next boot," - log "WARNING: or run: sudo classroom-chrome-setup" + chrome_ok=false + log "WARNING: Google Chrome is not installed yet." + log "WARNING: Provisioning will retry automatically." fi # DVD codecs are only fetched for rooms that actually have a drive. @@ -38,4 +40,10 @@ fi log "finished" # Provisioning is best-effort by design. -exit 0 +# Chrome is required for a usable classroom. Returning failure here does +# not block boot; systemd retries this oneshot service in the background. +if [[ "$chrome_ok" != true ]]; then + exit 1 +fi + +exit 0 \ No newline at end of file diff --git a/systemd/provision/ekklesia-classroom-provision.service b/systemd/provision/ekklesia-classroom-provision.service index 78ea0b7..7030b48 100644 --- a/systemd/provision/ekklesia-classroom-provision.service +++ b/systemd/provision/ekklesia-classroom-provision.service @@ -6,6 +6,8 @@ Wants=network-online.target [Service] Type=oneshot +Restart=on-failure +RestartSec=30 ExecStart=/usr/local/bin/classroom-provision # Building libdvdcss from source takes a while on classroom hardware. TimeoutStartSec=1800