{...}: { locals."git_repo_folder" = let split_repo = ''split("/", data.coder_parameter.git_repo.value)''; in ''''${try(element(${split_repo}, length(${split_repo}) - 1), "")}''; data = { coder_external_auth."gitlab" = { id = "gitlab"; optional = false; }; coder_workspace."me" = {}; }; resource = { coder_agent."coder" = { arch = "\${var.arch}"; os = "linux"; metadata = [ { display_name = "Container CPU Usage"; key = "0_cpu_usage"; script = "coder stat cpu --host=false"; interval = 10; timeout = 1; } { display_name = "Container RAM Usage"; key = "1_ram_usage"; script = "coder stat mem --host=false"; interval = 10; timeout = 1; } { display_name = "Home Disk"; key = "2_home_disk"; script = "coder stat disk --path $${HOME}"; interval = 60; timeout = 1; } { display_name = "Nix Store Disk"; key = "3_nix_store_disk"; script = "coder stat disk --path /nix"; interval = 60; timeout = 1; } ]; }; coder_script."git_clone" = { agent_id = "\${coder_agent.coder.id}"; display_name = "Git Clone"; icon = "/icon/git.svg"; script = let repo = ''''${data.coder_parameter.git_repo.value}''; repo_folder = ''''${local.git_repo_folder}''; in '' mkdir -p ~/repos if [ ! -z "${repo}" ]; then echo "Cloning repo \"${repo}\" if it does not exist" pushd ~/repos >/dev/null if [[ ! -d "${repo_folder}" ]] then git clone ${repo} ${repo_folder} fi popd >/dev/null else echo "No git repo specified, skipping..." fi ''; run_on_start = true; start_blocks_login = true; }; coder_script."home-manager" = { agent_id = "\${coder_agent.coder.id}"; display_name = "Home Manager"; icon = "/emojis/1f3e0.png"; script = '' if [ ! -z "$DOTFILES_REPO" ]; then echo "Dotfiles present, reloading home-manager profile" reload-dotfiles # the homeConfiguration can specify a program "coder_startup", run it # here if it exists if command -v coder_startup &> /dev/null; then echo "Running startup tasks..." coder_startup fi else echo "No dotfiles repo specified, skipping..." fi ''; run_on_start = true; start_blocks_login = true; }; coder_script."home-manager-shutdown" = { agent_id = "\${coder_agent.coder.id}"; display_name = "Home Manager Shutdown"; icon = "/emojis/1f3e0.png"; script = '' if command -v coder_shutdown &> /dev/null; then echo "Running shutdown tasks..." coder_shutdown fi ''; run_on_stop = true; }; }; }