111 lines
2.4 KiB
Bash
111 lines
2.4 KiB
Bash
if ! typeset -f ytr >/dev/null; then
|
|
|
|
export PATH="$PATH:$HOME/.local/bin:$HOME/bin"
|
|
|
|
# ── 2. Load .env files from ~/.environment.d/ ───────────────────
|
|
# Automatically export all variables defined while sourcing .env files
|
|
setopt allexport
|
|
for file in ~/.environment.d/*.env(.N); do
|
|
source "$file"
|
|
done
|
|
unset file
|
|
unsetopt allexport
|
|
|
|
|
|
|
|
|
|
# Load a function that allows us to import other function definitions from
|
|
# the ZSH_FUNC_PATH without providing their exact location
|
|
source "$DOTFILES_DIR/.zsh_functions/autosource.sh"
|
|
|
|
# Load the rest of the zsh configs in ~/.zshrc.d/
|
|
setopt allexport
|
|
for file in ~/.zshrc.d/*.zsh(.N); do
|
|
source "$file"
|
|
done
|
|
|
|
source ~/.zsh_functions/youtube.zsh
|
|
fi
|
|
|
|
mdl () {
|
|
cwd=$(pwd)
|
|
share_on_nas="$NAS_IP/media"
|
|
path_on_nas="Music/__INBOX"
|
|
jelly_wait=150
|
|
check_smb_mount() {
|
|
mount | grep -q "$mount_point"
|
|
}
|
|
|
|
mount_point="$HOME/NAS/Music"
|
|
if [ ! -d "$mount_point" ]; then
|
|
echo "Creating mount point directory..."
|
|
mkdir -p "$mount_point"
|
|
fi
|
|
|
|
if ! check_smb_mount; then
|
|
echo "Mounting SMB share..."
|
|
/sbin/mount_smbfs "smb://janolehuebner:$(pass sudo-lana)@$share_on_nas" "$mount_point"
|
|
fi
|
|
|
|
if ! check_smb_mount; then
|
|
echo "Failed to mount SMB share. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
# Move to target directory
|
|
cd "$mount_point/$path_on_nas"
|
|
|
|
echo "SMB share mounted successfully."
|
|
if [[ "$*" == *"tidal.com"* ]]; then
|
|
echo "TIDAL DETECTED"
|
|
tidal-dl -l $*
|
|
else
|
|
echo "Using qobuz-dl via uvx at: $(which uvx)"
|
|
echo "QOBUZ URL: $*"
|
|
uvx qobuz-dl dl $*
|
|
fi
|
|
|
|
echo "Unmounting SMB share..."
|
|
sleep 1
|
|
/sbin/umount -f "$mount_point"
|
|
cd $cwd
|
|
if declare -f jelly_rescan > /dev/null; then
|
|
echo "Waiting $jelly_wait secs before triggering automatic library scan..."
|
|
sleep $jelly_wait
|
|
jelly_rescan
|
|
echo "done"
|
|
fi
|
|
}
|
|
d () {
|
|
local url="${1:-$(pbpaste)}"
|
|
local used_clipboard=0
|
|
|
|
if [[ -z "$url" ]]; then
|
|
echo "No URL provided and clipboard is empty."
|
|
return 1
|
|
fi
|
|
|
|
# Check if URL came from clipboard
|
|
if [[ -z "$1" ]]; then
|
|
echo "started via clipboard"
|
|
used_clipboard=1
|
|
fi
|
|
|
|
case "$url" in
|
|
(*youtube*|*youtu.be*)
|
|
echo "Detected YouTube URL: $url"
|
|
ytr "$url"
|
|
;;
|
|
(*qobuz*)
|
|
echo "Detected Qobuz URL: $url"
|
|
mdl "$url"
|
|
if [[ $used_clipboard -eq 1 ]]; then
|
|
osascript -e "display dialog \"Done with Qobuz: $url\" buttons {\"OK\"}"
|
|
fi
|
|
;;
|
|
(*)
|
|
echo "Unknown URL: $url"
|
|
;;
|
|
esac
|
|
}
|
|
|