@@ -10,37 +10,41 @@ if [ "$BUILD_FLAG" == "--dry-run" ]; then
1010 DRY_RUN=true
1111fi
1212
13+ # Resolve repository base directory relative to this script location
14+ SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
15+ REPOS_DIR=" $SCRIPT_DIR /repos"
16+
1317# Function to select values file using fuzzy finder or menu
1418select_values_file () {
1519 local repo_dir=" $1 "
1620 local values_files=()
1721
1822 # Find all values*.yaml files in the repo directory
19- if [ -d " repos /$repo_dir " ]; then
23+ if [ -d " $REPOS_DIR /$repo_dir " ]; then
2024 while IFS= read -r -d ' ' file; do
2125 values_files+=(" $( basename " $file " ) " )
22- done < <( find " repos /$repo_dir " -name " values*.yaml" -print0 2> /dev/null)
26+ done < <( find " $REPOS_DIR /$repo_dir " -name " values*.yaml" -print0 2> /dev/null)
2327 fi
2428
2529 if [ ${# values_files[@]} -eq 0 ]; then
26- echo " Error: No values*.yaml files found in repos /$repo_dir " >&2
30+ echo " Error: No values*.yaml files found in $REPOS_DIR /$repo_dir " >&2
2731 exit 1
2832 elif [ ${# values_files[@]} -eq 1 ]; then
2933 # Only one file found, use it automatically
30- echo " repos /$repo_dir /${values_files[0]} "
34+ echo " $REPOS_DIR /$repo_dir /${values_files[0]} "
3135 return 0
3236 fi
3337
3438 # Multiple files found, let user choose
35- echo " Multiple values files found in repos /$repo_dir :" >&2
39+ echo " Multiple values files found in $REPOS_DIR /$repo_dir :" >&2
3640
3741 # Try to use fzf for fuzzy finding
3842 if command -v fzf & > /dev/null; then
3943 echo " Use arrow keys and type to filter, press Enter to select:" >&2
4044 local selected_file
4145 selected_file=$( printf ' %s\n' " ${values_files[@]} " | fzf --prompt=" Select values file: " --height=10 --reverse)
4246 if [ -n " $selected_file " ]; then
43- echo " repos /$repo_dir /$selected_file "
47+ echo " $REPOS_DIR /$repo_dir /$selected_file "
4448 return 0
4549 else
4650 echo " No file selected. Exiting." >&2
@@ -57,7 +61,7 @@ select_values_file() {
5761 echo -n " Select a file (1-${# values_files[@]} ): " >&2
5862 read -r choice
5963 if [[ " $choice " =~ ^[0-9]+$ ]] && [ " $choice " -ge 1 ] && [ " $choice " -le ${# values_files[@]} ]; then
60- echo " repos /$repo_dir /${values_files[$((choice-1))]} "
64+ echo " $REPOS_DIR /$repo_dir /${values_files[$((choice-1))]} "
6165 return 0
6266 else
6367 echo " Invalid selection. Please enter a number between 1 and ${# values_files[@]} ." >&2
@@ -69,7 +73,7 @@ select_values_file() {
6973# Select the values file to use
7074VALUES_FILE=$( select_values_file " $REPO_DIR " )
7175echo " Using values file: $VALUES_FILE "
72- DOCKERFILE=" repos /$REPO_DIR /Dockerfile"
76+ DOCKERFILE=" $REPOS_DIR /$REPO_DIR /Dockerfile"
7377
7478YQ_COMMAND=" "
7579
@@ -156,10 +160,10 @@ if [[ "$BUILD_FLAG" == "build" ]]; then
156160 REPO_NAME=${OWNER_REPO##*/ }
157161 IMAGE=" ghcr.io/${ORG} /${REPO_NAME} -runner:latest"
158162 if [ -f " $DOCKERFILE " ]; then
159- docker build -t " $IMAGE " " repos /$REPO_DIR "
163+ docker build -t " $IMAGE " " $REPOS_DIR /$REPO_DIR "
160164 docker push " $IMAGE "
161165 else
162- echo " No Dockerfile found in repos /$REPO_DIR , skipping build."
166+ echo " No Dockerfile found in $REPOS_DIR /$REPO_DIR , skipping build."
163167 fi
164168fi
165169
0 commit comments