{...}: { 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"; }; 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 else echo "No dotfiles repo specified, skipping..." fi ''; run_on_start = true; start_blocks_login = true; }; }; }