mirror of
https://github.com/Matir/skel.git
synced 2026-05-25 21:19:09 -07:00
Compare commits
8 Commits
b1d1c42a02
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9770514d6a | ||
|
|
e1724c77f3 | ||
|
|
ecbc25e5ac | ||
|
|
ea33840ef6 | ||
|
|
1048775da3 | ||
|
|
c9af80bc5d | ||
|
|
d8b4991419 | ||
|
|
158d9f6e4e |
6
Brewfile
6
Brewfile
@@ -21,9 +21,11 @@ brew "dfu-util"
|
||||
brew "difftastic"
|
||||
brew "direnv"
|
||||
brew "duck"
|
||||
brew "dust"
|
||||
brew "earthly"
|
||||
brew "esptool"
|
||||
brew "fish"
|
||||
brew "fq"
|
||||
brew "gh"
|
||||
brew "ghidra", link: false
|
||||
brew "git"
|
||||
@@ -58,6 +60,7 @@ brew "pkgconf"
|
||||
brew "protobuf"
|
||||
brew "pwgen"
|
||||
brew "pwntools"
|
||||
brew "python@3.13"
|
||||
brew "qemu"
|
||||
brew "restic"
|
||||
brew "ripgrep"
|
||||
@@ -115,11 +118,14 @@ end
|
||||
if !is_corp?
|
||||
brew "bazelisk"
|
||||
brew "openssh"
|
||||
brew "virt-manager"
|
||||
|
||||
cask "claude-code"
|
||||
cask "cryptomator"
|
||||
cask "keepassxc"
|
||||
cask "gcloud-cli"
|
||||
cask "google-cloud-sdk"
|
||||
cask "keybase"
|
||||
cask "orbstack"
|
||||
cask "jordanbaird-ice"
|
||||
end
|
||||
|
||||
63
bin/quartz
Executable file
63
bin/quartz
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# QUARTZ_DIR search logic
|
||||
if [ -z "${QUARTZ_DIR:-}" ]; then
|
||||
if [ -f "quartz.config.ts" ]; then
|
||||
QUARTZ_DIR="$PWD"
|
||||
elif [ -d "$HOME/Personal/notes-quartz" ]; then
|
||||
QUARTZ_DIR="$HOME/Personal/notes-quartz"
|
||||
elif [ -d "$HOME/Projects/notes-quartz" ]; then
|
||||
QUARTZ_DIR="$HOME/Projects/notes-quartz"
|
||||
else
|
||||
echo "Error: QUARTZ_DIR could not be found." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d "$QUARTZ_DIR" ]; then
|
||||
echo "Error: QUARTZ_DIR '$QUARTZ_DIR' is not a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# NOTES_DIR search logic
|
||||
PARSE_NOTES_DIR=""
|
||||
# Use a copy of args to find -d/--directory
|
||||
ARGS=("$@")
|
||||
for ((i=0; i<${#ARGS[@]}; i++)); do
|
||||
if [[ "${ARGS[i]}" == "-d" || "${ARGS[i]}" == "--directory" ]]; then
|
||||
if [[ $((i+1)) -lt ${#ARGS[@]} ]]; then
|
||||
PARSE_NOTES_DIR="${ARGS[i+1]}"
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$PARSE_NOTES_DIR" ]; then
|
||||
NOTES_DIR="$PARSE_NOTES_DIR"
|
||||
elif [ -z "${NOTES_DIR:-}" ]; then
|
||||
if [ -d "$HOME/Notes" ]; then
|
||||
NOTES_DIR="$HOME/Notes"
|
||||
elif [ -d "$HOME/Personal/notes" ]; then
|
||||
NOTES_DIR="$HOME/Personal/notes"
|
||||
elif [ -d "$HOME/Projects/notes" ]; then
|
||||
NOTES_DIR="$HOME/Projects/notes"
|
||||
else
|
||||
echo "Error: NOTES_DIR could not be found." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d "$NOTES_DIR" ]; then
|
||||
echo "Error: NOTES_DIR '$NOTES_DIR' is not a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$QUARTZ_DIR"
|
||||
|
||||
# Run npx quartz
|
||||
# Following the prompt's structure but using NOTES_DIR for the flag
|
||||
# npx quartz ${argv[1]} --directory ${NOTES_DIR} "$@"
|
||||
# We use ${1:-} for argv[1] to handle cases with no arguments.
|
||||
npx quartz "${1:-}" --directory "$NOTES_DIR" "$@"
|
||||
@@ -9,9 +9,8 @@ uv_venv_auto = true
|
||||
|
||||
[tools]
|
||||
age = "latest"
|
||||
age-plugin-yubikey = "latest"
|
||||
usage = "latest"
|
||||
uv = "latest"
|
||||
uv = "0.11.8"
|
||||
|
||||
[hooks]
|
||||
postinstall = "mise sync python --uv"
|
||||
|
||||
@@ -15,6 +15,7 @@ export DEBEMAIL="david@systemoverlord.com"
|
||||
export DEBFULLNAME="David Tomaschik"
|
||||
export LESS="-MR"
|
||||
export QUOTING_STYLE="literal" # Coreutils quotes
|
||||
export HOMEBREW_NO_ENV_HINTS=1
|
||||
|
||||
# Fix gnome-terminal
|
||||
if [ "$TERM" = "xterm" ] && [ "$COLORTERM" = "gnome-terminal" ] ; then
|
||||
|
||||
@@ -185,6 +185,9 @@ have_command() {
|
||||
if test -d ${HOME}/.local/bin ; then
|
||||
export PATH="${HOME}/.local/bin:${PATH}"
|
||||
fi
|
||||
if test -d ${HOME}/.npm-packages/bin ; then
|
||||
export PATH="${HOME}/.npm-packages/bin:${PATH}"
|
||||
fi
|
||||
|
||||
# Source extras and aliases if interactive
|
||||
if [[ $- == *i* ]] ; then
|
||||
|
||||
@@ -3,6 +3,17 @@
|
||||
# Skelify -- move a file to my .skel and setup symlinks
|
||||
|
||||
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 whichdir
|
||||
local relhome
|
||||
@@ -10,16 +21,19 @@ function skelify {
|
||||
local fulltarget
|
||||
for target in $~@; do
|
||||
if test -d ${target} ; then
|
||||
skelify ${target}/* || return 1
|
||||
skelify "${extra_args[@]}" ${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
|
||||
if [[ ${whichdir} == ${HOME} ]] ; then
|
||||
relhome=""
|
||||
elif [[ ${whichdir} == ${HOME}/* ]] ; then
|
||||
relhome=${whichdir#${HOME}/}
|
||||
else
|
||||
echo ${whichdir} is not in home >/dev/stderr
|
||||
return 1
|
||||
fi
|
||||
@@ -32,7 +46,7 @@ function skelify {
|
||||
return 1
|
||||
fi
|
||||
echo ${target}
|
||||
local skeldir="${HOME}/.skel/dotfiles/${relhome}"
|
||||
local skeldir="${base_skel_dir}/${relhome}"
|
||||
mkdir -p "${skeldir}"
|
||||
mv ${target} "${skeldir}/${fname}"
|
||||
ln -s "${skeldir}/${fname}" "${fulltarget}"
|
||||
|
||||
Reference in New Issue
Block a user