Allow ask_pn to create projects array and add to header
This commit is contained in:
@@ -220,7 +220,7 @@ ask() {
|
||||
err() { echo "Error: $*" >&2; }
|
||||
ask_pn() {
|
||||
unset PROJECT
|
||||
declare -g PROJECT
|
||||
declare -ag ADD_PROJECTS
|
||||
example_pn="${PROJECT_PREFIX}_$(random_words 3)"
|
||||
cat <<-EOF
|
||||
Enter a new or existing project name
|
||||
@@ -231,17 +231,22 @@ ask_pn() {
|
||||
EOF
|
||||
trys=3 # give the user up to 3 tries to enter a valid project name
|
||||
for ((i=1; i<=trys; i++)); do
|
||||
read -r -p "Enter a new or existing project name or enter for default ($example_pn): " PROJECT
|
||||
if [[ -z $PROJECT ]]; then
|
||||
PROJECT="$example_pn" && break
|
||||
read -r -p "Enter a new or existing project name or enter for default ($example_pn): " response
|
||||
if [[ -z $response ]]; then
|
||||
ADD_PROJECTS+=("$example_pn")
|
||||
break
|
||||
else
|
||||
sanitize_pn "$PROJECT" && break
|
||||
err "Invalid project name: $PROJECT"
|
||||
if sanitize_pn "$response"; then
|
||||
ADD_PROJECTS+=("$response")
|
||||
echo "$response successfully added as a project"
|
||||
i=1 # resetting trys counter in case user wants to add more than 3 projects
|
||||
else
|
||||
err "Invalid project name: $response"
|
||||
echo "Retrying ($i of $trys)"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
[[ -z $PROJECT ]] && exit 1 # TODO eventually switch to return, but treat as fatal for now
|
||||
echo "Using project name: $PROJECT"
|
||||
[[ -z ${ADD_PROJECTS[*]} ]]
|
||||
}
|
||||
debug() { (( DEBUG )) && echo "Debug: $*"; }
|
||||
# Not super portable but nice to have
|
||||
@@ -329,6 +334,8 @@ print_header() {
|
||||
if [[ -z ${PROJECTS[*]} ]]; then
|
||||
num=$((${#projects[@]}))
|
||||
echo "Enter project #'s to run (comma delimited)"
|
||||
read -r -p "Or hit enter to add a new project" response
|
||||
[[ -z $response ]] && ask_pn && PROJECTS+=("${ADD_PROJECTS[@]}")
|
||||
((YES)) || read -r -p "Hit enter for default ($num): " response
|
||||
[[ -z $response ]] && response=$num
|
||||
IFS=',' read -ra arr <<< "$response"
|
||||
@@ -338,7 +345,6 @@ print_header() {
|
||||
unset response arr i
|
||||
fi
|
||||
|
||||
|
||||
if [[ -z ${MODULES[*]} && -z ${INCLUDE_MODULES[*]} && -z ${EXCLUDE_MODULES[*]} ]]; then
|
||||
echo "Enter module #'s to run (by #, comma delimited)"
|
||||
((YES)) || read -r -p "Hit enter for default (ALL): " response
|
||||
@@ -1651,16 +1657,16 @@ main() {
|
||||
|
||||
print_header "$@"
|
||||
|
||||
# Prompt user for the PROJECT if we still don't have one
|
||||
if [[ ${#PROJECTS[@]} -eq 0 ]]; then
|
||||
ask_pn && PROJECTS+=("$PROJECT")
|
||||
fi
|
||||
# # Prompt user for the PROJECT if we still don't have one
|
||||
# if [[ ${#PROJECTS[@]} -eq 0 ]]; then
|
||||
# ask_pn && PROJECTS+=("${ADD_PROJECTS[@]}")
|
||||
# fi
|
||||
|
||||
for i in "${!PROJECTS[@]}"; do
|
||||
if ! sanitize_pn "${PROJECTS[i]}"; then
|
||||
echo "Project name ${PROJECTS[i]} is invalid"
|
||||
echo "Enter a replacement"
|
||||
ask_pn && PROJECTS[i]="$PROJECT"
|
||||
ask_pn && unset "PROJECTS[i]" && PROJECTS+=("${ADD_PROJECTS[@]}")
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user