Files
skel/dotfiles/zshrc.d/skelify.zsh
David Tomaschik aea7b0927e Fish updates
2026-02-17 12:31:12 -08:00

45 lines
1.2 KiB
Bash

#!/bin/zsh
#
# Skelify -- move a file to my .skel and setup symlinks
function skelify {
local target
local whichdir
local relhome
local fname
local fulltarget
for target in $~@; do
if test -d ${target} ; then
skelify ${target}/* || return 1
elif test -f ${target} ; then
if ! whichdir=$(cd $(dirname $target) && pwd); then
echo Could not find directory for $target >/dev/stderr
return 1
fi
fname=$(basename ${target})
relhome=${whichdir#${HOME}/}
fulltarget="${whichdir}/${fname}"
if [[ ${relhome} == ${whichdir} ]] ; then
echo ${whichdir} is not in home >/dev/stderr
return 1
fi
if [[ ${relhome:0:1} == "." ]] ; then
relhome=${relhome:1}
elif [[ ${fname:0:1} == "." ]] ; then
fname=${fname:1}
else
echo skelify only supports dotfiles >/dev/stderr
return 1
fi
echo ${target}
local skeldir="${HOME}/.skel/dotfiles/${relhome}"
mkdir -p "${skeldir}"
mv ${target} "${skeldir}/${fname}"
ln -s "${skeldir}/${fname}" "${fulltarget}"
else
echo ${target} is not a directory or file. >/dev/stderr
return 1
fi
done
}