diff --git a/build/build.plugin.zsh b/build/build.plugin.zsh index f2487da..688d0b6 100644 --- a/build/build.plugin.zsh +++ b/build/build.plugin.zsh @@ -42,7 +42,7 @@ EOF fi error() { echo "\e[31merror:\e[0m $1" } warning() { echo "\e[33mwarning:\e[0m $1" } - local build_dir + local local_build_dir if [[ ${#*} -gt 1 ]]; then echo $usage error "unexpected position arguments: ${*[2,${#*}]}"; return 1 @@ -50,24 +50,24 @@ EOF if [[ ! -d ${*[1]} ]]; then warning "directory not found: ${*[1]}" else - build_dir=${*[1]} + local_build_dir=${*[1]} fi fi # If was not set begin selection - if [[ -z $build_dir ]]; then + if [[ -z $local_build_dir ]]; then # Find build directories - local -a build_dirs + local -a local_build_dirs for entry in `ls -A`; do [ -d $entry ] && [[ $entry =~ build* ]] && \ - build_dirs+=${entry/\//} + local_build_dirs+=${entry/\//} done # Interactively select a build directory if more than 1 found integer index=0 - if [[ ${#build_dirs} -eq 0 ]]; then + if [[ ${#local_build_dirs} -eq 0 ]]; then error "no build directories found"; return 1 - elif [[ ${#build_dirs} -gt 1 ]]; then + elif [[ ${#local_build_dirs} -gt 1 ]]; then zmodload zsh/curses && { # Get the size of the terminal local size=`stty size` @@ -92,13 +92,13 @@ EOF zcurses string build-dir 'Select a build directory:' # Add the selections text - for (( i = 0; i < ${#build_dirs}; i++ )); do + for (( i = 0; i < ${#local_build_dirs}; i++ )); do integer line=$i+3 zcurses move build-dir $line 1 [[ $index -eq $i ]] && zcurses string build-dir "* " || zcurses string build-dir " " - zcurses string build-dir ${build_dirs[$i+1]} + zcurses string build-dir ${local_build_dirs[$i+1]} done # Display the text the and wait for input @@ -110,7 +110,7 @@ EOF (UP|k|$'\C-P') [[ $index -gt 0 ]] && index=$index-1 ;; (DOWN|j|$'\C-N') - [[ $index -lt ${#build_dirs}-1 ]] && index=$index+1 ;; + [[ $index -lt ${#local_build_dirs}-1 ]] && index=$index+1 ;; (ENTER|$'\n') break ;; esac @@ -127,32 +127,33 @@ EOF # On success setup the build directory for use if [[ $? -eq 0 ]]; then # Set the build directory from selection if empty - [[ -z $build_dir ]] && \ - build_dir=${build_dirs[$index+1]} + [[ -z $local_build_dir ]] && \ + local_build_dir=${local_build_dirs[$index+1]} # If `build.ninja` exists in alias `ninja`, return. local build - [ -f $build_dir/build.ninja ] && \ - build="ninja -C $build_dir" + [ -f $local_build_dir/build.ninja ] && \ + build="ninja -C $local_build_dir" # If `Makefile` exists in alias `make`, return. - if [ -f $build_dir/Makefile ]; then + if [ -f $local_build_dir/Makefile ]; then [ `uname` = Darwin ] && \ local cpu_count=`sysctl -n hw.ncpu` || local cpu_count=`grep -c '^processor' /proc/cpuinfo` - build="make -j $cpu_count -C $build_dir" + build="make -j $cpu_count -C $local_build_dir" fi # If the build variable is not defined the command could not be determined if [ -z $build ]; then - warning "build command detection failed: $build_dir" + warning "build command detection failed: $local_build_dir" # Prompt user to enter a build command vared -p 'enter comand: ' build fi # Redefine the `build` alias and update the `~build` hash directory alias build="$build" - hash -d build=$build_dir + hash -d build=$local_build_dir + export build_dir=$local_build_dir # If `--build` is specified then evaluate the command. if [[ -n $do_build ]]; then