[Unit] Description=APESS — bind participant workspace into the apess-onboard app container # The app's /app bind is rprivate, so these submounts must exist BEFORE the App Lab # daemon starts the default app container. Order strictly before it. Before=arduino-app-cli.service After=home-arduino.mount local-fs.target RequiresMountsFor=/home/arduino [Service] Type=oneshot RemainAfterExit=yes # Which app dir maps to /app. Default = the distributable apess-onboard; the dev # provisioner overrides it (to zeroclaw-node) by writing .apess-workspace.env. Environment=APP_DIR=/home/arduino/ArduinoApps/apess-onboard EnvironmentFile=-/home/arduino/.apess-workspace.env ExecStart=/home/arduino/mount-user-workspace.sh # Clean unmount on stop so the next start rebinds fresh. ExecStop=/bin/sh -c 'for m in "$APP_DIR"/workspace/sketches "$APP_DIR"/workspace/libraries "$APP_DIR"/workspace/apps/*; do mountpoint -q "$m" && umount "$m" || true; done; exit 0' [Install] WantedBy=multi-user.target