feature: move mdl into dotfiles

This commit is contained in:
Jan-Ole Hübner 2025-04-07 01:45:13 +02:00
parent 3f0a914c8c
commit f201724cbd
4 changed files with 105 additions and 20 deletions

View file

@ -1,15 +1,8 @@
export PATH="$PATH:$HOME/.local/bin:$HOME/bin" # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# ── 2. Load .env files from ~/.environment.d/ ─────────────────── # confirmations, etc.) must go above this block; everything else may go below.
# Automatically export all variables defined while sourcing .env files if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
setopt allexport source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
for file in ~/.environment.d/*.env(.N); do fi
source "$file"
done
unset file
unsetopt allexport
# ── 3. Source ~/.zshrc (if this is a login shell sourcing a profile file) ─
# In Zsh, this is unnecessary in most setups unless you separate login/init logic.
[[ -r ~/.zshrc ]] && source ~/.zshrc [[ -r ~/.zshrc ]] && source ~/.zshrc

View file

@ -0,0 +1,85 @@
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
d () {
local url="${1:-$(pbpaste)}"
if [[ -z "$url" ]]; then
echo "No URL provided and clipboard is empty."
return 1
fi
case "$url" in
(*youtube*|*youtu.be*) echo "Detected YouTube URL: $url"
ytr "$url" ;;
(*qobuz*) echo "Detected Qobuz URL: $url"
mdl "$url" ;;
(*) echo "Unknown URL: $url" ;;
esac
}
mdl () {
cwd=$(pwd)
share_on_nas="192.168.84.3/media"
path_on_nas="Music/__INBOX"
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 "QOBUZ DETECTED"
qobuz-dl dl $*
fi
echo "Unmounting SMB share..."
sleep 1
umount "$mount_point"
cd $cwd
open "http://bliss.lan/"
}

20
.zshrc
View file

@ -1,9 +1,16 @@
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. export PATH="$PATH:$HOME/.local/bin:$HOME/bin"
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below. # ── 2. Load .env files from ~/.environment.d/ ───────────────────
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then # Automatically export all variables defined while sourcing .env files
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" setopt allexport
fi 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 # Load a function that allows us to import other function definitions from
# the ZSH_FUNC_PATH without providing their exact location # the ZSH_FUNC_PATH without providing their exact location
@ -22,6 +29,7 @@ autosource youtube
autosource milan autosource milan
autosource nas autosource nas
autosource fuck autosource fuck
autosource download
test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh" test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"

View file

@ -1,5 +1,4 @@
# Aliases # Aliases
alias d="$HOME/dev/bin/mdl"
alias vim="nvim" alias vim="nvim"
alias vi="nvim" alias vi="nvim"
alias nano="nvim" alias nano="nvim"