diff --git a/commands/core.d/bootstrap b/commands/core.d/bootstrap index 659af39f9a075bfb65f5ae04f536ea9632c95e6a..e772c708bb0ec0ca240378e6c6bec501ba7f6aad 100755 --- a/commands/core.d/bootstrap +++ b/commands/core.d/bootstrap @@ -63,35 +63,6 @@ function core_bootstrap_git_lay() { fi } -function core_bootstrap_ask_passphrase() { - @required [boolean] interactive - - if [[ "$interactive" == "false" ]]; then - return - fi - - . "$_GO_USE_MODULES" 'prompt' - - eval "$(ssh-agent -t 300)" - - # TODO do this generic in a loop - @go.prompt_for_input \ - github_com_key \ - 'github.com key path: ' \ - "$HOME/.ssh/id_rsa" - - ssh-add "$github_com_key" - - @go.prompt_for_input \ - kth_github_key \ - 'KTH github key path: ' \ - "$HOME/.ssh/id_rsa" - - if [[ "$kth_github_key" != "$github_com_key" ]]; then - ssh-add "$kth_github_key" - fi -} - function core_bootstrap_git_collab() { if [[ ! -e "$PROJECT_DIR/.gitcollab" ]]; then return @@ -177,80 +148,21 @@ function core_bootstrap_configure() { if ! @go.prompt_for_yes_or_no "$string" 'no'; then return fi - - [[ "$(<"$_HEADSTART_PROJECT_CONFIG")" =~ project\ =\ ([^[:space:]]+) ]] - old_project="${BASH_REMATCH[1]}" - project_prompt="ID of Google Cloud project (old value is default): " - - [[ "$(<"$_HEADSTART_PROJECT_CONFIG")" =~ world_reuse\ =\ ([^[:space:]]+) ]] - old_reuse="${BASH_REMATCH[1]}" - reuse_prompt="players per world (old value is default): " - - [[ "$(<"$_HEADSTART_PROJECT_CONFIG")" =~ google_cloud_region\ =\ ([^[:space:]]+) ]] - old_region="${BASH_REMATCH[1]}" - region_prompt="google cloud default region (old value is default): " - - [[ "$(<"$_HEADSTART_PROJECT_CONFIG")" =~ google_cloud_zone\ =\ ([^[:space:]]+) ]] - old_zone="${BASH_REMATCH[1]}" - zone_prompt="google cloud default zone (old value is default): " fi if [[ ! -e "$_HEADSTART_PROJECT_CONFIG" ]]; then mkdir -p "${_HEADSTART_PROJECT_CONFIG%/*}" - fi - - project_prompt="${project_prompt-ID of Google Cloud project: }" - local project='' - @go.prompt_for_input \ - "project" \ - "$project_prompt" \ - "${old_project-}" \ - '' "${old_project:-required}" - - echo '[default]' >|"$_HEADSTART_PROJECT_CONFIG" - echo "project = $project" >>"$_HEADSTART_PROJECT_CONFIG" - - reuse_prompt="${reuse_prompt-players per world: }" - local world_reuse='' - while [[ ! "$world_reuse" =~ ^[0-9]+$ ]]; do - @go.prompt_for_input \ - "world_reuse" \ - "$reuse_prompt" \ - "${old_reuse-}" \ - '' "${old_reuse:-required}" - done - - echo "world_reuse = $world_reuse" >>"$_HEADSTART_PROJECT_CONFIG" - - region_prompt="${region_prompt-google cloud default region: }" - declare region='' - @go.prompt_for_input \ - "region" \ - "$region_prompt" \ - "${old_region-europe-west1}" \ - '' - echo "google_cloud_region = $region" >>"$_HEADSTART_PROJECT_CONFIG" - - zone_prompt="${zone_prompt-google cloud default zone: }" - declare zone='' - @go.prompt_for_input \ - "zone" \ - "$zone_prompt" \ - "${old_zone-europe-west1-b}" \ - '' - - echo "google_cloud_zone = $zone" >>"$_HEADSTART_PROJECT_CONFIG" - - # TODO do not hardcode this - echo 'overlord_email = nkak@kth.se' >>"$_HEADSTART_PROJECT_CONFIG" - - . "$_GO_USE_MODULES" 'prompt' + if [[ -r "$HEADSTART_RESOURCES_DIR/project.dest.conf" ]]; then + cp "$HEADSTART_RESOURCES_DIR/project.dest.conf" "$_HEADSTART_PROJECT_CONFIG" + fi + fi - info "Select your role in the project:" - local PS3='Select role: ' - @go.select_option 'user_role' 'developer' 'TA' - echo "user_role = $user_role" >>"$_HEADSTART_PROJECT_CONFIG" + if [[ -v EDITOR ]]; then + "$EDITOR" "$_HEADSTART_PROJECT_CONFIG" + else + nano "$_HEADSTART_PROJECT_CONFIG" + fi } function core_bootstrap_lock() { @@ -293,7 +205,6 @@ function core_bootstrap() { mkdir -p "$_HEADSTART_TMP_DIR" if [[ "$interactive" == true ]]; then - core_bootstrap_ask_passphrase core_bootstrap_configure fi diff --git a/headstart-core.bash b/headstart-core.bash index dbab2bd4f734d21933ec220787b4099c43fa5173..2df94e4fd5a5b3ffa2ac27ef3b676e254094217b 100644 --- a/headstart-core.bash +++ b/headstart-core.bash @@ -47,10 +47,12 @@ cd "$PROJECT_DIR" . "$_HEADSTART_CORE_DIR/headstart-load-libs.bash" "$@" \ "${_HEADSTART_CORE_DIR#$PROJECT_DIR/}/"{commands,} + tmp_dir="${_HEADSTART_SCRIPT_NAME~~}_TMP_DIR" declare -gx _HEADSTART_TMP_DIR="${!tmp_dir}" declare -gx _HEADSTART_VENDOR_DIR="${_HEADSTART_CORE_DIR}/vendor" +declare -gx HEADSTART_RESOURCES_DIR="${HEADSTART_RESOURCES_DIR-resources}" declare -gx _HEADSTART_CMD="${_GO_CMD##*/}" declare -gx _HEADSTART_PROJECT_CONFIG="${HEADSTART_PROJECT_CONFIG-data/config/project.conf}" declare -gx _HEADSTART_CORE_LOCK="${HEADSTART_CORE_LOCK-data/config/.core.lock}"