From 9268595c7c8ad910c121da144b140afc2eb866f3 Mon Sep 17 00:00:00 2001 From: Riyyi Date: Mon, 27 Jan 2020 21:54:45 +0100 Subject: [PATCH] Convert config.sh to use blacklist instead of whilelist --- .scripts/config.sh | 69 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 59 insertions(+), 10 deletions(-) diff --git a/.scripts/config.sh b/.scripts/config.sh index f417c40..06801e0 100755 --- a/.scripts/config.sh +++ b/.scripts/config.sh @@ -2,25 +2,74 @@ # Script that searches config files and scripts -# Define editor to open file in -EDITOR="$EDITOR" +# User-config--------------------------- + +# Define editor to open file in and if it should fork +EDITOR="emacsclient" +BACKGROUND="&" + +# List of directories to exclude +EXCLUDES=" +Code +Documents +dotfiles +Downloads +pictures +.cache +.clangd +.config/chromium +.config/ElectronChrome +.config/vim/pack/plugins +.electron-gyp +.emacs.d/elpa +.gradle +.jd +.local/share +.mozilla/firefox/rick.profile/storage +.node-gyp +.npm +.nvm +.wine +" + +# List of files to include +INCLUDES=" +dotfiles/dotfiles.sh +" + +# -------------------------------------- + +# Execute relative to $HOME +cd "$HOME" || exit 1 + +# Generate exclude string to use with find +for EXCLUDE in $EXCLUDES; do + EXCLUDE_STRING="$EXCLUDE_STRING -path ./$EXCLUDE -o" +done +EXCLUDE_STRING=${EXCLUDE_STRING%???} -# List of locations to search -LOCATIONS="$HOME/.config $HOME/.scripts" # Find the files -FILES="$(find -L $LOCATIONS -maxdepth 3 -type f | sort)" -HOME="$(find -L $HOME -maxdepth 1 -type f | sort)" +FILES="$(find . \( $EXCLUDE_STRING \) -prune -o -printf '%P\n')" # If no name provided if [ -z "$1" ]; then - SELECTED="$(printf "%s\n%s" "$FILES" "$HOME" \ + SELECTED="$(printf "%s\n%s" "$FILES" "$INCLUDES" \ | uniq | rofi -dmenu -p "Select file to edit")" # Else try to search for that file else - SELECTED="$(printf "%s\n%s" "$FILES" "$HOME" | grep "$1" | head -n 1)" + SELECTED="$(printf "%s\n%s" "$FILES" "$INCLUDES" | grep "$1" | head -n 1)" +fi + +# Exit if nothing selected +if [ -z "$SELECTED" ]; then + exit fi -# Start editor with selected file (if any) -[ -n "$SELECTED" ] && $EDITOR "$SELECTED" +# Start editor with selected file +if [ -z "$BACKGROUND" ]; then + $EDITOR "$SELECTED" +else + $EDITOR "$SELECTED" > /dev/null 2>&1 & +fi