Browse Source

Convert config.sh to use blacklist instead of whilelist

master
Riyyi 5 years ago
parent
commit
9268595c7c
  1. 69
      .scripts/config.sh

69
.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

Loading…
Cancel
Save