49 lines
1.5 KiB
Bash
Executable file
49 lines
1.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
scope="${1:-none}"
|
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
unit_source_dir="$repo_root/deployment/native/systemd/user"
|
|
unit_target_dir="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user"
|
|
units=()
|
|
|
|
case "$scope" in
|
|
none)
|
|
;;
|
|
full)
|
|
units=(islandflow-web.service islandflow-api.service islandflow-compute.service islandflow-candles.service islandflow-ingest-options.service islandflow-ingest-equities.service islandflow-ingest-news.service)
|
|
;;
|
|
web)
|
|
units=(islandflow-web.service)
|
|
;;
|
|
api)
|
|
units=(islandflow-api.service)
|
|
;;
|
|
services)
|
|
units=(islandflow-api.service islandflow-compute.service islandflow-candles.service islandflow-ingest-options.service islandflow-ingest-equities.service islandflow-ingest-news.service)
|
|
;;
|
|
workers)
|
|
units=(islandflow-compute.service islandflow-candles.service islandflow-ingest-options.service islandflow-ingest-equities.service islandflow-ingest-news.service)
|
|
;;
|
|
*)
|
|
echo "Unknown scope: $scope" >&2
|
|
echo "Expected one of: none, full, web, api, services, workers" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
mkdir -p "$unit_target_dir"
|
|
cp "$unit_source_dir"/*.service "$unit_target_dir"/
|
|
|
|
systemctl --user daemon-reload
|
|
|
|
if [[ ${#units[@]} -gt 0 ]]; then
|
|
systemctl --user enable "${units[@]}"
|
|
fi
|
|
|
|
echo "Installed Islandflow user units into $unit_target_dir"
|
|
if [[ ${#units[@]} -gt 0 ]]; then
|
|
echo "Enabled scope: $scope"
|
|
else
|
|
echo "No units enabled yet. Pass a scope such as workers when you are ready."
|
|
fi
|