From 11be99c4a382bd170a7e24a34ea0840defa859f8 Mon Sep 17 00:00:00 2001 From: Charles Gould Date: Tue, 15 Nov 2022 00:36:57 -0500 Subject: [PATCH] install: reorganize to mirror $HOME --- {fish => .config/fish}/.gitignore | 0 .../fish}/completions/fisher.fish | 0 .../fish}/completions/license.fish | 0 .../fish}/completions/replay.fish | 0 {fish => .config/fish}/completions/sdk.fish | 0 .../fish}/completions/set_cursor.fish | 0 {fish => .config/fish}/conf.d/fzf.fish | 0 {fish => .config/fish}/conf.d/nix-env.fish | 0 {fish => .config/fish}/conf.d/sdk.fish | 0 {fish => .config/fish}/conf.d/xdg.fish | 0 {fish => .config/fish}/config.fish | 0 {fish => .config/fish}/fish_plugins | 0 {fish => .config/fish}/functions/battery.fish | 0 .../fish}/functions/broken_symlinks.fish | 0 .../fish}/functions/class_version.fish | 0 {fish => .config/fish}/functions/confirm.fish | 0 {fish => .config/fish}/functions/diff.fish | 0 .../fish}/functions/dns_flush.fish | 0 .../fish}/functions/expand_dots.fish | 0 {fish => .config/fish}/functions/fbrew.fish | 0 .../fish}/functions/fish_colors.fish | 0 .../fish}/functions/fish_colors_check.fish | 0 .../fish}/functions/fish_vars.fish | 0 {fish => .config/fish}/functions/fisher.fish | 0 {fish => .config/fish}/functions/fishy.fish | 0 {fish => .config/fish}/functions/fkill.fish | 0 {fish => .config/fish}/functions/forget.fish | 0 {fish => .config/fish}/functions/hbrake.fish | 0 {fish => .config/fish}/functions/hr.fish | 0 {fish => .config/fish}/functions/license.fish | 0 {fish => .config/fish}/functions/man.fish | 0 .../fish}/functions/manifest.fish | 0 .../fish}/functions/mansearch.fish | 0 {fish => .config/fish}/functions/md5sum.fish | 0 {fish => .config/fish}/functions/mkcd.fish | 0 {fish => .config/fish}/functions/motd.fish | 0 .../fish}/functions/nix_upgrade.fish | 0 .../fish}/functions/npm_upgrade.fish | 0 .../fish}/functions/pip_upgrade.fish | 0 .../fish}/functions/port_listener.fish | 0 {fish => .config/fish}/functions/replay.fish | 0 .../fish}/functions/sbt_clean.fish | 0 {fish => .config/fish}/functions/sdk.fish | 0 .../fish}/functions/set_cursor.fish | 0 .../fish}/functions/sha256sum.fish | 0 {fish => .config/fish}/functions/which.fish | 0 {git => .config/git}/config | 0 {git => .config/git}/ignore | 0 {nix => .config/nix}/nix.conf | 0 {nix => .config/nix}/packages.nix | 0 {nvim => .config/nvim}/.gitignore | 0 {nvim => .config/nvim}/init.vim | 0 {sbt => .config/sbt}/plugins/.gitignore | 0 {sbt => .config/sbt}/plugins/plugins.sbt | 0 {sbt => .config/sbt}/settings/aliases.sbt | 0 {sbt => .config/sbt}/settings/prompt.sbt | 0 bash/.bashrc | 16 --------- install/install-nix-packages.sh | 2 +- install/install-symlinks.sh | 34 ++++++------------- 59 files changed, 12 insertions(+), 40 deletions(-) rename {fish => .config/fish}/.gitignore (100%) rename {fish => .config/fish}/completions/fisher.fish (100%) rename {fish => .config/fish}/completions/license.fish (100%) rename {fish => .config/fish}/completions/replay.fish (100%) rename {fish => .config/fish}/completions/sdk.fish (100%) rename {fish => .config/fish}/completions/set_cursor.fish (100%) rename {fish => .config/fish}/conf.d/fzf.fish (100%) rename {fish => .config/fish}/conf.d/nix-env.fish (100%) rename {fish => .config/fish}/conf.d/sdk.fish (100%) rename {fish => .config/fish}/conf.d/xdg.fish (100%) rename {fish => .config/fish}/config.fish (100%) rename {fish => .config/fish}/fish_plugins (100%) rename {fish => .config/fish}/functions/battery.fish (100%) rename {fish => .config/fish}/functions/broken_symlinks.fish (100%) rename {fish => .config/fish}/functions/class_version.fish (100%) rename {fish => .config/fish}/functions/confirm.fish (100%) rename {fish => .config/fish}/functions/diff.fish (100%) rename {fish => .config/fish}/functions/dns_flush.fish (100%) rename {fish => .config/fish}/functions/expand_dots.fish (100%) rename {fish => .config/fish}/functions/fbrew.fish (100%) rename {fish => .config/fish}/functions/fish_colors.fish (100%) rename {fish => .config/fish}/functions/fish_colors_check.fish (100%) rename {fish => .config/fish}/functions/fish_vars.fish (100%) rename {fish => .config/fish}/functions/fisher.fish (100%) rename {fish => .config/fish}/functions/fishy.fish (100%) rename {fish => .config/fish}/functions/fkill.fish (100%) rename {fish => .config/fish}/functions/forget.fish (100%) rename {fish => .config/fish}/functions/hbrake.fish (100%) rename {fish => .config/fish}/functions/hr.fish (100%) rename {fish => .config/fish}/functions/license.fish (100%) rename {fish => .config/fish}/functions/man.fish (100%) rename {fish => .config/fish}/functions/manifest.fish (100%) rename {fish => .config/fish}/functions/mansearch.fish (100%) rename {fish => .config/fish}/functions/md5sum.fish (100%) rename {fish => .config/fish}/functions/mkcd.fish (100%) rename {fish => .config/fish}/functions/motd.fish (100%) rename {fish => .config/fish}/functions/nix_upgrade.fish (100%) rename {fish => .config/fish}/functions/npm_upgrade.fish (100%) rename {fish => .config/fish}/functions/pip_upgrade.fish (100%) rename {fish => .config/fish}/functions/port_listener.fish (100%) rename {fish => .config/fish}/functions/replay.fish (100%) rename {fish => .config/fish}/functions/sbt_clean.fish (100%) rename {fish => .config/fish}/functions/sdk.fish (100%) rename {fish => .config/fish}/functions/set_cursor.fish (100%) rename {fish => .config/fish}/functions/sha256sum.fish (100%) rename {fish => .config/fish}/functions/which.fish (100%) rename {git => .config/git}/config (100%) rename {git => .config/git}/ignore (100%) rename {nix => .config/nix}/nix.conf (100%) rename {nix => .config/nix}/packages.nix (100%) rename {nvim => .config/nvim}/.gitignore (100%) rename {nvim => .config/nvim}/init.vim (100%) rename {sbt => .config/sbt}/plugins/.gitignore (100%) rename {sbt => .config/sbt}/plugins/plugins.sbt (100%) rename {sbt => .config/sbt}/settings/aliases.sbt (100%) rename {sbt => .config/sbt}/settings/prompt.sbt (100%) delete mode 100644 bash/.bashrc diff --git a/fish/.gitignore b/.config/fish/.gitignore similarity index 100% rename from fish/.gitignore rename to .config/fish/.gitignore diff --git a/fish/completions/fisher.fish b/.config/fish/completions/fisher.fish similarity index 100% rename from fish/completions/fisher.fish rename to .config/fish/completions/fisher.fish diff --git a/fish/completions/license.fish b/.config/fish/completions/license.fish similarity index 100% rename from fish/completions/license.fish rename to .config/fish/completions/license.fish diff --git a/fish/completions/replay.fish b/.config/fish/completions/replay.fish similarity index 100% rename from fish/completions/replay.fish rename to .config/fish/completions/replay.fish diff --git a/fish/completions/sdk.fish b/.config/fish/completions/sdk.fish similarity index 100% rename from fish/completions/sdk.fish rename to .config/fish/completions/sdk.fish diff --git a/fish/completions/set_cursor.fish b/.config/fish/completions/set_cursor.fish similarity index 100% rename from fish/completions/set_cursor.fish rename to .config/fish/completions/set_cursor.fish diff --git a/fish/conf.d/fzf.fish b/.config/fish/conf.d/fzf.fish similarity index 100% rename from fish/conf.d/fzf.fish rename to .config/fish/conf.d/fzf.fish diff --git a/fish/conf.d/nix-env.fish b/.config/fish/conf.d/nix-env.fish similarity index 100% rename from fish/conf.d/nix-env.fish rename to .config/fish/conf.d/nix-env.fish diff --git a/fish/conf.d/sdk.fish b/.config/fish/conf.d/sdk.fish similarity index 100% rename from fish/conf.d/sdk.fish rename to .config/fish/conf.d/sdk.fish diff --git a/fish/conf.d/xdg.fish b/.config/fish/conf.d/xdg.fish similarity index 100% rename from fish/conf.d/xdg.fish rename to .config/fish/conf.d/xdg.fish diff --git a/fish/config.fish b/.config/fish/config.fish similarity index 100% rename from fish/config.fish rename to .config/fish/config.fish diff --git a/fish/fish_plugins b/.config/fish/fish_plugins similarity index 100% rename from fish/fish_plugins rename to .config/fish/fish_plugins diff --git a/fish/functions/battery.fish b/.config/fish/functions/battery.fish similarity index 100% rename from fish/functions/battery.fish rename to .config/fish/functions/battery.fish diff --git a/fish/functions/broken_symlinks.fish b/.config/fish/functions/broken_symlinks.fish similarity index 100% rename from fish/functions/broken_symlinks.fish rename to .config/fish/functions/broken_symlinks.fish diff --git a/fish/functions/class_version.fish b/.config/fish/functions/class_version.fish similarity index 100% rename from fish/functions/class_version.fish rename to .config/fish/functions/class_version.fish diff --git a/fish/functions/confirm.fish b/.config/fish/functions/confirm.fish similarity index 100% rename from fish/functions/confirm.fish rename to .config/fish/functions/confirm.fish diff --git a/fish/functions/diff.fish b/.config/fish/functions/diff.fish similarity index 100% rename from fish/functions/diff.fish rename to .config/fish/functions/diff.fish diff --git a/fish/functions/dns_flush.fish b/.config/fish/functions/dns_flush.fish similarity index 100% rename from fish/functions/dns_flush.fish rename to .config/fish/functions/dns_flush.fish diff --git a/fish/functions/expand_dots.fish b/.config/fish/functions/expand_dots.fish similarity index 100% rename from fish/functions/expand_dots.fish rename to .config/fish/functions/expand_dots.fish diff --git a/fish/functions/fbrew.fish b/.config/fish/functions/fbrew.fish similarity index 100% rename from fish/functions/fbrew.fish rename to .config/fish/functions/fbrew.fish diff --git a/fish/functions/fish_colors.fish b/.config/fish/functions/fish_colors.fish similarity index 100% rename from fish/functions/fish_colors.fish rename to .config/fish/functions/fish_colors.fish diff --git a/fish/functions/fish_colors_check.fish b/.config/fish/functions/fish_colors_check.fish similarity index 100% rename from fish/functions/fish_colors_check.fish rename to .config/fish/functions/fish_colors_check.fish diff --git a/fish/functions/fish_vars.fish b/.config/fish/functions/fish_vars.fish similarity index 100% rename from fish/functions/fish_vars.fish rename to .config/fish/functions/fish_vars.fish diff --git a/fish/functions/fisher.fish b/.config/fish/functions/fisher.fish similarity index 100% rename from fish/functions/fisher.fish rename to .config/fish/functions/fisher.fish diff --git a/fish/functions/fishy.fish b/.config/fish/functions/fishy.fish similarity index 100% rename from fish/functions/fishy.fish rename to .config/fish/functions/fishy.fish diff --git a/fish/functions/fkill.fish b/.config/fish/functions/fkill.fish similarity index 100% rename from fish/functions/fkill.fish rename to .config/fish/functions/fkill.fish diff --git a/fish/functions/forget.fish b/.config/fish/functions/forget.fish similarity index 100% rename from fish/functions/forget.fish rename to .config/fish/functions/forget.fish diff --git a/fish/functions/hbrake.fish b/.config/fish/functions/hbrake.fish similarity index 100% rename from fish/functions/hbrake.fish rename to .config/fish/functions/hbrake.fish diff --git a/fish/functions/hr.fish b/.config/fish/functions/hr.fish similarity index 100% rename from fish/functions/hr.fish rename to .config/fish/functions/hr.fish diff --git a/fish/functions/license.fish b/.config/fish/functions/license.fish similarity index 100% rename from fish/functions/license.fish rename to .config/fish/functions/license.fish diff --git a/fish/functions/man.fish b/.config/fish/functions/man.fish similarity index 100% rename from fish/functions/man.fish rename to .config/fish/functions/man.fish diff --git a/fish/functions/manifest.fish b/.config/fish/functions/manifest.fish similarity index 100% rename from fish/functions/manifest.fish rename to .config/fish/functions/manifest.fish diff --git a/fish/functions/mansearch.fish b/.config/fish/functions/mansearch.fish similarity index 100% rename from fish/functions/mansearch.fish rename to .config/fish/functions/mansearch.fish diff --git a/fish/functions/md5sum.fish b/.config/fish/functions/md5sum.fish similarity index 100% rename from fish/functions/md5sum.fish rename to .config/fish/functions/md5sum.fish diff --git a/fish/functions/mkcd.fish b/.config/fish/functions/mkcd.fish similarity index 100% rename from fish/functions/mkcd.fish rename to .config/fish/functions/mkcd.fish diff --git a/fish/functions/motd.fish b/.config/fish/functions/motd.fish similarity index 100% rename from fish/functions/motd.fish rename to .config/fish/functions/motd.fish diff --git a/fish/functions/nix_upgrade.fish b/.config/fish/functions/nix_upgrade.fish similarity index 100% rename from fish/functions/nix_upgrade.fish rename to .config/fish/functions/nix_upgrade.fish diff --git a/fish/functions/npm_upgrade.fish b/.config/fish/functions/npm_upgrade.fish similarity index 100% rename from fish/functions/npm_upgrade.fish rename to .config/fish/functions/npm_upgrade.fish diff --git a/fish/functions/pip_upgrade.fish b/.config/fish/functions/pip_upgrade.fish similarity index 100% rename from fish/functions/pip_upgrade.fish rename to .config/fish/functions/pip_upgrade.fish diff --git a/fish/functions/port_listener.fish b/.config/fish/functions/port_listener.fish similarity index 100% rename from fish/functions/port_listener.fish rename to .config/fish/functions/port_listener.fish diff --git a/fish/functions/replay.fish b/.config/fish/functions/replay.fish similarity index 100% rename from fish/functions/replay.fish rename to .config/fish/functions/replay.fish diff --git a/fish/functions/sbt_clean.fish b/.config/fish/functions/sbt_clean.fish similarity index 100% rename from fish/functions/sbt_clean.fish rename to .config/fish/functions/sbt_clean.fish diff --git a/fish/functions/sdk.fish b/.config/fish/functions/sdk.fish similarity index 100% rename from fish/functions/sdk.fish rename to .config/fish/functions/sdk.fish diff --git a/fish/functions/set_cursor.fish b/.config/fish/functions/set_cursor.fish similarity index 100% rename from fish/functions/set_cursor.fish rename to .config/fish/functions/set_cursor.fish diff --git a/fish/functions/sha256sum.fish b/.config/fish/functions/sha256sum.fish similarity index 100% rename from fish/functions/sha256sum.fish rename to .config/fish/functions/sha256sum.fish diff --git a/fish/functions/which.fish b/.config/fish/functions/which.fish similarity index 100% rename from fish/functions/which.fish rename to .config/fish/functions/which.fish diff --git a/git/config b/.config/git/config similarity index 100% rename from git/config rename to .config/git/config diff --git a/git/ignore b/.config/git/ignore similarity index 100% rename from git/ignore rename to .config/git/ignore diff --git a/nix/nix.conf b/.config/nix/nix.conf similarity index 100% rename from nix/nix.conf rename to .config/nix/nix.conf diff --git a/nix/packages.nix b/.config/nix/packages.nix similarity index 100% rename from nix/packages.nix rename to .config/nix/packages.nix diff --git a/nvim/.gitignore b/.config/nvim/.gitignore similarity index 100% rename from nvim/.gitignore rename to .config/nvim/.gitignore diff --git a/nvim/init.vim b/.config/nvim/init.vim similarity index 100% rename from nvim/init.vim rename to .config/nvim/init.vim diff --git a/sbt/plugins/.gitignore b/.config/sbt/plugins/.gitignore similarity index 100% rename from sbt/plugins/.gitignore rename to .config/sbt/plugins/.gitignore diff --git a/sbt/plugins/plugins.sbt b/.config/sbt/plugins/plugins.sbt similarity index 100% rename from sbt/plugins/plugins.sbt rename to .config/sbt/plugins/plugins.sbt diff --git a/sbt/settings/aliases.sbt b/.config/sbt/settings/aliases.sbt similarity index 100% rename from sbt/settings/aliases.sbt rename to .config/sbt/settings/aliases.sbt diff --git a/sbt/settings/prompt.sbt b/.config/sbt/settings/prompt.sbt similarity index 100% rename from sbt/settings/prompt.sbt rename to .config/sbt/settings/prompt.sbt diff --git a/bash/.bashrc b/bash/.bashrc deleted file mode 100644 index f8ca365..0000000 --- a/bash/.bashrc +++ /dev/null @@ -1,16 +0,0 @@ -# Path -export PATH="$HOME/bin" -export PATH="$PATH:/usr/local/bin" -export PATH="$PATH:/usr/bin" -export PATH="$PATH:/bin" -export PATH="$PATH:/usr/local/sbin" -export PATH="$PATH:/usr/sbin" -export PATH="$PATH:/sbin" - -# Do not save lines which begin with a space character -# Do not save lines which match the previous history entry -# Remove from history all previous lines matching the current line -export HISTCONTROL=ignoreboth:erasedups - -[ -f /usr/local/etc/bash_completion ] && source /usr/local/etc/bash_completion -[ -f $HOME/.sdkman/bin/sdkman-init.sh ] && source $HOME/.sdkman/bin/sdkman-init.sh diff --git a/install/install-nix-packages.sh b/install/install-nix-packages.sh index ce080d5..f7707de 100755 --- a/install/install-nix-packages.sh +++ b/install/install-nix-packages.sh @@ -9,7 +9,7 @@ found_nix_command=0 for profile in "$HOME/.nix-profile" "/nix/var/nix/profiles/default" do if test -x "$profile/bin/nix-env"; then - "$profile/bin/nix-env" --install --remove-all --file "$ROOTDIR/nix/packages.nix" + "$profile/bin/nix-env" --install --remove-all --file "$ROOTDIR/.config/nix/packages.nix" found_nix_command=1 break fi diff --git a/install/install-symlinks.sh b/install/install-symlinks.sh index a16c607..7f9a24c 100755 --- a/install/install-symlinks.sh +++ b/install/install-symlinks.sh @@ -4,31 +4,19 @@ echo "***** INSTALL SYMLINKS *****" ROOTDIR=$(cd "$(dirname "$0")/.." && pwd) -backup_existing() { - if [ -e "$1" ]; then - if [ ! -L "$1" ]; then - mv -v "$1" "$1.backup" - fi - fi -} - -# Backup configs that are not already symlinked -backup_existing "$HOME/.bashrc" -backup_existing "$HOME/.config/fish" -backup_existing "$HOME/.config/git" -backup_existing "$HOME/.config/nix" -backup_existing "$HOME/.config/nvim" -backup_existing "$HOME/.config/sbt" - # Create config directory if not present mkdir -p "$HOME/.config" -# Create symlinks, forcing updates -ln -fnsv "$ROOTDIR/bash/.bashrc" "$HOME/.bashrc" # Bash does not support XDG config -ln -fnsv "$ROOTDIR/fish" "$HOME/.config/fish" -ln -fnsv "$ROOTDIR/git" "$HOME/.config/git" -ln -fnsv "$ROOTDIR/nix" "$HOME/.config/nix" -ln -fnsv "$ROOTDIR/nvim" "$HOME/.config/nvim" -ln -fnsv "$ROOTDIR/sbt" "$HOME/.config/sbt" +for srcdir in $(find "$ROOTDIR/.config" -mindepth 1 -maxdepth 1 -type d); do + dstdir="$HOME/.config/$(basename $srcdir)" + + # Backup configs that are not already symlinked + if [ -e "$dstdir" ] && [ ! -L "$dstdir" ]; then + mv -v "$dstdir" "$dstdir.backup" + fi + + # Create symlinks, forcing updates + ln -fnsv "$srcdir" "$dstdir" +done echo