mirror of
https://github.com/Matir/skel.git
synced 2026-05-25 21:19:09 -07:00
Compare commits
3 Commits
ea33840ef6
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9770514d6a | ||
|
|
e1724c77f3 | ||
|
|
ecbc25e5ac |
5
Brewfile
5
Brewfile
@@ -21,9 +21,11 @@ brew "dfu-util"
|
|||||||
brew "difftastic"
|
brew "difftastic"
|
||||||
brew "direnv"
|
brew "direnv"
|
||||||
brew "duck"
|
brew "duck"
|
||||||
|
brew "dust"
|
||||||
brew "earthly"
|
brew "earthly"
|
||||||
brew "esptool"
|
brew "esptool"
|
||||||
brew "fish"
|
brew "fish"
|
||||||
|
brew "fq"
|
||||||
brew "gh"
|
brew "gh"
|
||||||
brew "ghidra", link: false
|
brew "ghidra", link: false
|
||||||
brew "git"
|
brew "git"
|
||||||
@@ -58,6 +60,7 @@ brew "pkgconf"
|
|||||||
brew "protobuf"
|
brew "protobuf"
|
||||||
brew "pwgen"
|
brew "pwgen"
|
||||||
brew "pwntools"
|
brew "pwntools"
|
||||||
|
brew "python@3.13"
|
||||||
brew "qemu"
|
brew "qemu"
|
||||||
brew "restic"
|
brew "restic"
|
||||||
brew "ripgrep"
|
brew "ripgrep"
|
||||||
@@ -115,6 +118,7 @@ end
|
|||||||
if !is_corp?
|
if !is_corp?
|
||||||
brew "bazelisk"
|
brew "bazelisk"
|
||||||
brew "openssh"
|
brew "openssh"
|
||||||
|
brew "virt-manager"
|
||||||
|
|
||||||
cask "claude-code"
|
cask "claude-code"
|
||||||
cask "cryptomator"
|
cask "cryptomator"
|
||||||
@@ -123,4 +127,5 @@ if !is_corp?
|
|||||||
cask "google-cloud-sdk"
|
cask "google-cloud-sdk"
|
||||||
cask "keybase"
|
cask "keybase"
|
||||||
cask "orbstack"
|
cask "orbstack"
|
||||||
|
cask "jordanbaird-ice"
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,6 +3,17 @@
|
|||||||
# Skelify -- move a file to my .skel and setup symlinks
|
# Skelify -- move a file to my .skel and setup symlinks
|
||||||
|
|
||||||
function skelify {
|
function skelify {
|
||||||
|
local -A opts
|
||||||
|
zparseopts -D -A opts -overlay:
|
||||||
|
|
||||||
|
local overlay_name="${opts[--overlay]}"
|
||||||
|
local base_skel_dir="${HOME}/.skel/dotfiles"
|
||||||
|
local extra_args=()
|
||||||
|
if [[ -n "${overlay_name}" ]]; then
|
||||||
|
base_skel_dir="${HOME}/.skel/dotfile_overlays/${overlay_name}"
|
||||||
|
extra_args=(--overlay "${overlay_name}")
|
||||||
|
fi
|
||||||
|
|
||||||
local target
|
local target
|
||||||
local whichdir
|
local whichdir
|
||||||
local relhome
|
local relhome
|
||||||
@@ -10,16 +21,19 @@ function skelify {
|
|||||||
local fulltarget
|
local fulltarget
|
||||||
for target in $~@; do
|
for target in $~@; do
|
||||||
if test -d ${target} ; then
|
if test -d ${target} ; then
|
||||||
skelify ${target}/* || return 1
|
skelify "${extra_args[@]}" ${target}/* || return 1
|
||||||
elif test -f ${target} ; then
|
elif test -f ${target} ; then
|
||||||
if ! whichdir=$(cd $(dirname $target) && pwd); then
|
if ! whichdir=$(cd $(dirname $target) && pwd); then
|
||||||
echo Could not find directory for $target >/dev/stderr
|
echo Could not find directory for $target >/dev/stderr
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
fname=$(basename ${target})
|
fname=$(basename ${target})
|
||||||
relhome=${whichdir#${HOME}/}
|
|
||||||
fulltarget="${whichdir}/${fname}"
|
fulltarget="${whichdir}/${fname}"
|
||||||
if [[ ${relhome} == ${whichdir} ]] ; then
|
if [[ ${whichdir} == ${HOME} ]] ; then
|
||||||
|
relhome=""
|
||||||
|
elif [[ ${whichdir} == ${HOME}/* ]] ; then
|
||||||
|
relhome=${whichdir#${HOME}/}
|
||||||
|
else
|
||||||
echo ${whichdir} is not in home >/dev/stderr
|
echo ${whichdir} is not in home >/dev/stderr
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@@ -32,7 +46,7 @@ function skelify {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
echo ${target}
|
echo ${target}
|
||||||
local skeldir="${HOME}/.skel/dotfiles/${relhome}"
|
local skeldir="${base_skel_dir}/${relhome}"
|
||||||
mkdir -p "${skeldir}"
|
mkdir -p "${skeldir}"
|
||||||
mv ${target} "${skeldir}/${fname}"
|
mv ${target} "${skeldir}/${fname}"
|
||||||
ln -s "${skeldir}/${fname}" "${fulltarget}"
|
ln -s "${skeldir}/${fname}" "${fulltarget}"
|
||||||
|
|||||||
Reference in New Issue
Block a user