dotfiles/fetch-3rd-party.sh
Thomas Preisner 5fd4472c50 add fetch-3rd-party.sh and remove installExternal.sh
The new script not only clones the git repo once but can also pulls
updates from all git repositories every time it is executed and allows
to symlink binaries into $HOME/bin
2017-10-10 14:09:32 +02:00

37 lines
911 B
Bash
Executable file

#!/bin/bash -e
::() {
echo ":: $*" >&2
"$@"
}
# usage: fetch <name> <git repo> [<bin symlinks> ...]
fetch() {
dir="$HOME/misc/$1"
if [ -d "$dir" ]; then
# try to pull changes from repository without merging
:: git --git-dir="$dir/.git" --work-tree="$dir" pull --ff-only
else
# clone repository if it does not exist yet
:: git clone "$2" "$dir"
fi
shift
shift
# symlink all following filenames into $HOME/bin if existent
while x="$1"; shift; do
file=$(:: find "$dir" -name "$x" | head -n 1)
if [ -z "$file" ]; then
echo "Missing file: $x"
else
target="${file##*/}"
target="${target%.py}"
:: ln -sf "$file" "$HOME/bin/$target"
fi
done
}
fetch barpyrus https://github.com/t-wissmann/barpyrus.git
fetch i3lock-fancy https://github.com/meskarune/i3lock-fancy.git lock
fetch siji https://github.com/stark/siji
:: sh -c 'cd $HOME/misc/siji && ./install.sh -d "$HOME/.fonts"'