aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Expand)AuthorAgeFilesLines
* Apply stable check and lint methods to games shellTom Ryder2017-10-311-1/+1
* Adjust `check-bin`, `lint-bin` for built scriptsTom Ryder2017-10-311-1/+1
* Add a `lint-vim` target for linting Vim configTom Ryder2017-10-301-0/+5
* Remove vim/after installation from vim/bundleTom Ryder2017-10-301-2/+9
* Move vim/after/ftplugin files into vim/ftpluginTom Ryder2017-10-301-0/+6
* Rename Makefile target for Vim plugin bundlesTom Ryder2017-10-301-9/+9
* Move PHP indent nixing into ~/.vim/indentTom Ryder2017-10-301-0/+6
* Move vim/after/ftdetect to vim/ftdetectTom Ryder2017-10-301-0/+6
* Load Vim Pathogen with :runtimeTom Ryder2017-10-291-7/+1
* Restore dotfiles(7) manual as pre-built dist fileTom Ryder2017-10-291-0/+6
* Set up .d-style vimrc subdir for config breakupTom Ryder2017-10-281-0/+2
* Break pks(6df) and philsay(6df) in twoTom Ryder2017-07-021-0/+1
* Reimplement rndl(1df) in AwkTom Ryder2017-07-011-3/+0
* First attempt at pks(6df)Tom Ryder2017-07-011-0/+1
* Solve Pandoc issue by not building page at allTom Ryder2017-07-011-9/+0
* Add oii(1df)Tom Ryder2017-06-291-0/+4
* Revert "Allow MYSQL_* my.cnf vars"Tom Ryder2017-06-261-10/+1
* Add dependency to install-mysql targetTom Ryder2017-06-261-1/+1
* Allow MYSQL_* my.cnf varsTom Ryder2017-06-261-0/+9
* Correct silly error in MakefileTom Ryder2017-06-251-1/+1
* Add install-conf targetTom Ryder2017-06-251-0/+3
* Remove deprecated keyserver optionsTom Ryder2017-06-251-3/+1
* Add a simple wgetrcTom Ryder2017-06-231-0/+4
* More segmentation/tidyingTom Ryder2017-06-181-4/+7
* Break plenv stuff into its own targetTom Ryder2017-06-181-1/+6
* Refactor mpd/ncmpcpp stuff completelyTom Ryder2017-06-181-1/+7
* Remove now-unused TMUX_BG/FG varsTom Ryder2017-06-151-3/+0
* Remove color/colour templating from tmux.confTom Ryder2017-06-151-8/+0
* Restore previous TMUX_BG/FG varsTom Ryder2017-06-151-2/+2
* Correct GTK3 rc pathTom Ryder2017-06-151-2/+2
* Refactor m4 macro namesTom Ryder2017-06-131-6/+10
* Add fnp(1df)Tom Ryder2017-06-121-0/+1
* Makefile refactorTom Ryder2017-06-101-19/+21
* Add rep(1df)Tom Ryder2017-06-031-0/+1
* Tidier implementation for mi5 shTom Ryder2017-06-021-9/+11
* Use mi5 to make templated shell scriptsTom Ryder2017-06-021-24/+53
* Move existing .m4 to .m4.mi5Tom Ryder2017-06-021-1/+7
* Add mi5(1df)Tom Ryder2017-06-021-0/+1
* Add p(1df)Tom Ryder2017-05-281-0/+1
* Add mw(1df)Tom Ryder2017-05-281-0/+1
* Add trs(1df)Tom Ryder2017-05-241-0/+1
* Add dam(1df)Tom Ryder2017-05-241-0/+1
* Remove Yash supportTom Ryder2017-05-241-18/+2
* Add pst(1df), ped(1df), and pvi(1df)Tom Ryder2017-05-101-0/+3
* Add squ(6df)Tom Ryder2017-05-011-0/+1
* Add grec(1df) and gred(1df)Tom Ryder2017-04-281-0/+2
* Fix up .PHONY targetsTom Ryder2017-04-101-4/+6
* Rename "dist" to "install"Tom Ryder2017-04-091-1/+1
* Add xinitrc.d script checksTom Ryder2017-04-091-2/+10
* Restructure shell install and checkTom Ryder2017-04-091-28/+30
an class="si">})) ; then printf '%s\n' "${patharr[@]}" fi ;; # Add a directory to the front of PATH, checking for existence and uniqueness insert|i) local -a patharr IFS=: read -a patharr < <(printf '%s\n' "$PATH") local dir dir=$1 if [[ -z $dir ]] ; then printf 'bash: %s: need a directory path to insert\n' \ "$FUNCNAME" >&2 return 1 fi if [[ ! -d $dir ]] ; then printf 'bash: %s: %s not a directory\n' \ "$FUNCNAME" "$dir" >&2 return 1 fi if [[ $dir == *:* ]] ; then printf 'bash: %s: Cannot add insert directory %s with colon in name\n' \ "$FUNCNAME" "$dir" >&2 return 1 fi if path check "$dir" ; then printf 'bash: %s: %s already in PATH\n' \ "$FUNCNAME" "$dir" >&2 return 1 fi patharr=("$dir" "${patharr[@]}") path set "${patharr[@]}" ;; # Add a directory to the end of PATH, checking for existence and uniqueness append|add|a) local -a patharr IFS=: read -a patharr < <(printf '%s\n' "$PATH") local dir dir=$1 if [[ -z $dir ]] ; then printf 'bash: %s: need a directory path to append\n' \ "$FUNCNAME" >&2 return 1 fi if [[ ! -d $dir ]] ; then printf 'bash: %s: %s not a directory\n' \ "$FUNCNAME" "$dir" >&2 return 1 fi if [[ $dir == *:* ]] ; then printf 'bash: %s: Cannot append directory %s with colon in name\n' \ "$FUNCNAME" "$dir" >&2 return 1 fi if path check "$dir" ; then printf 'bash: %s: %s already in PATH\n' \ "$FUNCNAME" "$dir" >&2 return 1 fi patharr=("${patharr[@]}" "$dir") path set "${patharr[@]}" ;; # Remove all instances of a directory from PATH remove|rm|r) local -a patharr IFS=: read -a patharr < <(printf '%s\n' "$PATH") local dir dir=$1 if [[ -z $dir ]] ; then printf 'bash: %s: need a directory path to remove\n' \ "$FUNCNAME" >&2 return 1 fi if ! path check "$dir" ; then printf 'bash: %s: %s not in PATH\n' \ "$FUNCNAME" "$dir" >&2 return 1 fi local -a newpatharr local part for part in "${patharr[@]}" ; do if [[ ${dir%/} != "${part%/}" ]] ; then newpatharr=("${newpatharr[@]}" "$part") fi done path set "${newpatharr[@]}" ;; # Set the PATH to the given directories without checking existence or uniqueness set|s) local -a newpatharr local part for part ; do newpatharr=("${newpatharr[@]}" "${part%/}") done PATH=$(IFS=: ; printf '%s' "${newpatharr[*]}") ;; # Return whether directory is a component of PATH check|c) local -a patharr IFS=: read -a patharr < <(printf '%s\n' "$PATH") local dir dir=$1 if [[ -z $dir ]] ; then printf 'bash: %s: need a directory path to check\n' \ "$FUNCNAME" >&2 return 1 fi local part for part in "${patharr[@]}" ; do if [[ ${dir%/} == "${part%/}" ]] ; then return 0 fi done return 1 ;; # Unknown command *) printf 'bash: %s: Unknown command %s\n' \ "$FUNCNAME" "$pathcmd" >&2 path help >&2 return 1 ;; esac } # Completion for path _path() { local word word=${COMP_WORDS[COMP_CWORD]} # Complete operation as first word if ((COMP_CWORD == 1)) ; then COMPREPLY=( $(compgen -W \ 'help list insert append remove set check' \ -- "$word") ) else case ${COMP_WORDS[1]} in # Complete with one directory insert|i|append|add|a|check|c) if ((COMP_CWORD == 2)) ; then compopt -o filenames COMPREPLY=( $(compgen -A directory -- "$word") ) fi ;; # Complete with any number of directories set|s) compopt -o filenames COMPREPLY=( $(compgen -A directory -- "$word") ) ;; # Complete with directories from PATH remove|rm|r) local -a promptarr IFS=: read -a promptarr < <(printf '%s\n' "$PATH") local part for part in "${promptarr[@]}" ; do if [[ $part && $part == "$word"* ]] ; then COMPREPLY=("${COMPREPLY[@]}" "$part") fi done ;; # No completion *) return 1 ;; esac fi } complete -F _path path