Compare commits

..

4 Commits

Author SHA1 Message Date
70dd5613b2 Added editor aliases
Removed git alias, as I use ssh now on Darwin
2026-02-12 08:10:34 +01:00
2718b03ab7 Aliase für git hinzugefügt 2026-02-10 16:40:18 +01:00
25b2a4478a Token caching 2026-02-10 16:24:38 +01:00
4fe26a23af Token caching 2026-02-10 16:17:29 +01:00
5 changed files with 63 additions and 20 deletions

View File

@@ -1,21 +1,43 @@
#!/usr/bin/env bash
if [ "$1" = "get" ]; then
# Prüfen, ob die Session-Variable da ist
if [ -z "$BW_SESSION" ]; then
echo "FEHLER: Bitwarden ist gesperrt! Bitte 'unlock' ausführen." >&2
exit 1
CACHE_FILE="/tmp/git_bw_token_$USER"
TOKEN_NAME="Token"
get_credentials() {
# 1. Versuch: Cache laden
if [ -f "$CACHE_FILE" ]; then
cat "$CACHE_FILE"
return
fi
# Das gesamte Item einmal holen, um nicht mehrfach anfragen zu müssen
ITEM_JSON=$(bw get item gitea.iten.pro 2>/dev/null)
if [ -n "$ITEM_JSON" ]; then
# Benutzername extrahieren
USER=$(echo "$ITEM_JSON" | jq -r '.login.username')
# Token aus den Custom Fields extrahieren
TOKEN=$(echo "$ITEM_JSON" | jq -r '.fields[] | select(.name=="Token") | .value')
echo "username=$USER"
echo "password=$TOKEN"
# 2. Versuch: Bitwarden abfragen
if [ -n "$BW_SESSION" ]; then
ITEM_JSON=$(bw get item gitea.iten.pro 2>/dev/null)
if [ -n "$ITEM_JSON" ]; then
# Wir nutzen BW_USER, um die System-Variable $USER nicht zu überschreiben
BW_USER=$(echo "$ITEM_JSON" | jq -r '.login.username')
# Korrekte Übergabe der Variable an jq via --arg
TOKEN=$(echo "$ITEM_JSON" | jq -r --arg TNAME "$TOKEN_NAME" '.fields[] | select(.name==$TNAME) | .value')
if [ -n "$TOKEN" ] && [ "$TOKEN" != "null" ]; then
# Hier die Variablen nutzen, die wir oben gefüllt haben
OUT="username=$BW_USER\npassword=$TOKEN"
echo -e "$OUT" > "$CACHE_FILE"
chmod 600 "$CACHE_FILE"
echo -e "$OUT"
return
fi
fi
fi
fi
# Fehlermeldung nur, wenn kein Cache da war und BW Abfrage scheiterte
printf "\033[1;31mFEHLER:\033[0m Bitwarden ist gesperrt oder Token nicht gefunden! Bitte '\033[1munlock\033[22m' ausführen.\n" >&2
exit 1
}
case "$1" in
get) get_credentials ;;
store|erase) ;;
esac

View File

@@ -9,7 +9,8 @@ unlock() {
}
lock() {
rm -f "/tmp/git_bw_token_$USER"
bw lock > /dev/null
unset BW_SESSION
echo "🔒 Tresor gesperrt und Session gelöscht."
echo "🔒 Tresor gesperrt, Cache geleert und Session gelöscht."
}

View File

@@ -2,6 +2,6 @@
if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS spezifisch
alias nrf-env="export PATH='/opt/nordic/ncs/toolchains/322ac893fe/bin:\$PATH'"
# git alias ist nötig, da unter Sequoia sonst git auf lokale server nicht mehr funktioniert
alias git="/usr/bin/git"
# git alias ist nötig, da unter Sequoia sonst git http auf lokale server nicht mehr funktioniert
# alias git="/usr/bin/git"
fi

View File

@@ -0,0 +1,7 @@
if (( $+commands[micro] )); then
alias nano="micro"
alias vi="micro"
alias vim="micro"
export EDITOR="micro"
export VISUAL="micro"
fi

13
zsh_func_d/git_alias.zsh Normal file
View File

@@ -0,0 +1,13 @@
if [ -x "$(command -v git)" ]; then
alias gs="git status -sb"
alias gss="eza --long --header --git --icons"
alias gl="git log --oneline --graph --decorate"
alias gp="git push"
alias gpf="git push --force-with-lease" # Die sichere Variante von force
alias glp="git pull"
alias gd="git diff"
alias gc="git commit -v"
alias gca="git commit -v -a"
alias gtoday="git log --since='00:00:00' --all-match --format='%C(bold blue)%as%Creset %C(yellow)%h%Creset %s'"
alias glol="git log --graph --pretty=format:'%C(yellow)%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
fi