From d7842c2b96da32bcfb181a88c34a4b67cf6bc815 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Wed, 14 Mar 2018 00:10:56 -0400 Subject: Combine home-related scripts --- home.zsh | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 home.zsh (limited to 'home.zsh') diff --git a/home.zsh b/home.zsh new file mode 100755 index 00000000..8490a3b5 --- /dev/null +++ b/home.zsh @@ -0,0 +1,42 @@ +#!/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 +} + +$@ -- cgit 1.4.1