diff options
-rw-r--r-- | home.txt | 17 | ||||
-rwxr-xr-x | home.zsh | 42 | ||||
-rwxr-xr-x | link.zsh | 19 | ||||
-rwxr-xr-x | prune.zsh | 7 |
4 files changed, 26 insertions, 59 deletions
diff --git a/home.txt b/home.txt deleted file mode 100644 index 4489872e..00000000 --- a/home.txt +++ /dev/null @@ -1,17 +0,0 @@ -.bin/sup -.bin/tup -.bin/up -.config/git/config -.config/git/ignore -.config/htop/htoprc -.config/nvim/colors/trivial.vim -.config/nvim/init.vim -.config/nvim/syntax/nasm.vim -.gdbinit -.gnupg/gpg-agent.conf -.hushlogin -.inputrc -.lldbinit -.psqlrc -.ssh/config -.zshrc diff --git a/home.zsh b/home.zsh deleted file mode 100755 index 8490a3b5..00000000 --- a/home.zsh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env zsh -set -o errexit -o nounset -o pipefail - -fail() { - echo "$@" - exit 1 -} - -link() { - local relPath srcPath dstPath - < home.txt while read relPath; do - srcPath="$PWD/home/$relPath" - dstPath="$HOME/$relPath" - [ -L "$dstPath" ] && continue - mkdir -p "$(dirname "$dstPath")" - ln -s "$srcPath" "$dstPath" - echo "$relPath" - done -} - -import() { - local relPath srcPath dstPath - relPath="$1" - srcPath="$HOME/$relPath" - dstPath="$PWD/home/$relPath" - [ -f "$dstPath" ] && fail "$dstPath exists" - mkdir -p "$(dirname "$dstPath")" - mv "$srcPath" "$dstPath" - ln -s "$dstPath" "$srcPath" - echo "$relPath" >> home.txt - sort -o home.txt home.txt -} - -prune() { - local linkPath - find -L ~ -type l -lname "$PWD/*" | while read linkPath; do - rm "$linkPath" - echo "$linkPath" - done -} - -$@ diff --git a/link.zsh b/link.zsh new file mode 100755 index 00000000..42c8d04c --- /dev/null +++ b/link.zsh @@ -0,0 +1,19 @@ +#!/usr/bin/env zsh +set -o errexit -o nounset -o pipefail + +if [ $# -eq 1 ]; then + linkPath="$1" + filePath="$PWD/home/${linkPath#$HOME/}" + [ ! -f "$filePath" ] + mkdir -p $(dirname "$filePath") + mv "$linkPath" "$filePath" +fi + +find home -type f | while read findPath; do + filePath="$PWD/$findPath" + linkPath="$HOME/${findPath#home/}" + [ -L "$linkPath" ] && continue + mkdir -p $(dirname "$linkPath") + ln -s "$filePath" "$linkPath" + echo "$linkPath" +done diff --git a/prune.zsh b/prune.zsh new file mode 100755 index 00000000..a0eb1f73 --- /dev/null +++ b/prune.zsh @@ -0,0 +1,7 @@ +#!/usr/bin/env zsh +set -o errexit -o nounset -o pipefail + +find -L ~ -type l -lname "$PWD/*" | while read linkPath; do + rm "$linkPath" + echo "$linkPath" +done |