Compare commits

..

6 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
b4658f3279 README.de.md aktualisiert 2026-02-10 13:34:55 +00:00
6d6a0772e2 README.de.md aktualisiert 2026-02-10 13:28:03 +00:00
6 changed files with 70 additions and 21 deletions

View File

@@ -15,11 +15,13 @@ sudo apt update && sudo apt upgrade -y
sudo apt install -y jq curl git micro sudo apt install -y jq curl git micro
# Bitwarden CLI installieren (via NPM oder direktes Binary) # Bitwarden CLI installieren (via NPM oder direktes Binary)
# Empfohlener Weg via NPM: # via NPM
sudo apt install -y nodejs npm sudo apt install -y nodejs npm
sudo npm install -g @bitwarden/cli sudo npm install -g @bitwarden/cli
``` ```
Bitwarden kann auch als bin direkt installiert werden. Lade das zip von [https://bitwarden.com/help/cli/] herunter und entpacke das enthaltene `bw` an einen Ort im `$PATH`, vorzugsweise `~/.local/bin`
## 2. Bitwarden Initialisierung ## 2. Bitwarden Initialisierung
Damit der Git-Helper funktioniert, muss die CLI mit deinem Server verbunden sein. Damit der Git-Helper funktioniert, muss die CLI mit deinem Server verbunden sein.
@@ -78,11 +80,15 @@ brew install eza
``` ```
#### Armbian/Debian/Ubuntu (via offiziellen Repos) #### Armbian/Debian/Ubuntu (via offiziellen Repos)
Nur falls nicht in den Standard-Repos enthalten:
```bash ```bash
sudo mkdir -p /etc/apt/keyrings sudo mkdir -p /etc/apt/keyrings
wget -qO- [https://raw.githubusercontent.com/eza-community/eza/main/deb.asc](https://raw.githubusercontent.com/eza-community/eza/main/deb.asc) | sudo gpg --dearmor -o /etc/apt/keyrings/gza.gpg wget -qO- [https://raw.githubusercontent.com/eza-community/eza/main/deb.asc](https://raw.githubusercontent.com/eza-community/eza/main/deb.asc) | sudo gpg --dearmor -o /etc/apt/keyrings/gza.gpg
echo "deb [signed-by=/etc/apt/keyrings/gza.gpg] [http://deb.gza.com/dev/](http://deb.gza.com/dev/) /" | sudo tee /etc/apt/sources.list.d/gza.list echo "deb [signed-by=/etc/apt/keyrings/gza.gpg] [http://deb.gza.com/dev/](http://deb.gza.com/dev/) /" | sudo tee /etc/apt/sources.list.d/gza.list
sudo apt update sudo apt update
```
Dann:
```bash
sudo apt install -y eza sudo apt install -y eza
``` ```

View File

@@ -1,21 +1,43 @@
#!/usr/bin/env bash #!/usr/bin/env bash
if [ "$1" = "get" ]; then
# Prüfen, ob die Session-Variable da ist CACHE_FILE="/tmp/git_bw_token_$USER"
if [ -z "$BW_SESSION" ]; then TOKEN_NAME="Token"
echo "FEHLER: Bitwarden ist gesperrt! Bitte 'unlock' ausführen." >&2
exit 1 get_credentials() {
# 1. Versuch: Cache laden
if [ -f "$CACHE_FILE" ]; then
cat "$CACHE_FILE"
return
fi fi
# Das gesamte Item einmal holen, um nicht mehrfach anfragen zu müssen # 2. Versuch: Bitwarden abfragen
ITEM_JSON=$(bw get item gitea.iten.pro 2>/dev/null) if [ -n "$BW_SESSION" ]; then
ITEM_JSON=$(bw get item gitea.iten.pro 2>/dev/null)
if [ -n "$ITEM_JSON" ]; then if [ -n "$ITEM_JSON" ]; then
# Benutzername extrahieren # Wir nutzen BW_USER, um die System-Variable $USER nicht zu überschreiben
USER=$(echo "$ITEM_JSON" | jq -r '.login.username') BW_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" # Korrekte Übergabe der Variable an jq via --arg
echo "password=$TOKEN" 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
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() { lock() {
rm -f "/tmp/git_bw_token_$USER"
bw lock > /dev/null bw lock > /dev/null
unset BW_SESSION 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 if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS spezifisch # macOS spezifisch
alias nrf-env="export PATH='/opt/nordic/ncs/toolchains/322ac893fe/bin:\$PATH'" 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 # git alias ist nötig, da unter Sequoia sonst git http auf lokale server nicht mehr funktioniert
alias git="/usr/bin/git" # alias git="/usr/bin/git"
fi 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