#!/bin/bash if [ -z "$STORAGE" ]; then echo "\$STORAGE is empty, please set it as a directory" exit 1 fi set -e # Prepare stow (perl libs and binary) - if necessary if [ ! -f "$(which stow > /dev/null 2> /dev/null)" ]; then mkdir -p $HOME/.local/{bin,share/{doc,info,man/man8,perl5}} ln -s $STORAGE/stowed/stow/.local/bin/stow $HOME/.local/bin ln -s $STORAGE/stowed/stow/.local/bin/chkstow $HOME/.local/bin ln -s $STORAGE/stowed/stow/.local/share/perl5/Stow $HOME/.local/share/perl5 ln -s $STORAGE/stowed/stow/.local/share/perl5/Stow.pm $HOME/.local/share/perl5 fi stow="stow --target $HOME" # Edit this folder to wherever you store dotfiles / stowed files stow_dir=$STORAGE/stowed # Restore stowed config cd $stow_dir # The stow folder needs to be unstowed with a special command $stow --defer=.local/bin --defer=.local/share/perl5 # You can use the option --adopt to override config files # that may autogenerate, such as .bashrc # Copy this example, changing the folder to be restored # $stow bash