#!/usr/bin/env bash set -Eeuo pipefail [[ ${EUID:-$(id -u)} -eq 0 ]] || { echo "Run as root: sudo ./install-lxc.sh" >&2; exit 1; } ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$ROOT" apt-get update apt-get install -y --no-install-recommends build-essential curl ca-certificates pkg-config if ! command -v cargo >/dev/null 2>&1; then curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal source /root/.cargo/env fi cargo build --release id gree-controller >/dev/null 2>&1 || useradd --system --home /var/lib/gree-controller --shell /usr/sbin/nologin gree-controller install -d -o gree-controller -g gree-controller -m 0750 /var/lib/gree-controller install -d -o root -g root -m 0755 /opt/gree-controller install -o root -g root -m 0755 target/release/gree-controller /opt/gree-controller/gree-controller install -o root -g root -m 0644 systemd/gree-controller.service /etc/systemd/system/gree-controller.service if [[ ! -f /etc/gree-controller.env ]]; then token="$(od -An -N24 -tx1 /dev/urandom | tr -d ' \n')" cat > /etc/gree-controller.env <