Compare commits
6 Commits
7893e8546b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 70dd5613b2 | |||
| 2718b03ab7 | |||
| 25b2a4478a | |||
| 4fe26a23af | |||
| b4658f3279 | |||
| 6d6a0772e2 |
@@ -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
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
7
zsh_func_d/editor_micro.zsh
Normal file
7
zsh_func_d/editor_micro.zsh
Normal 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
13
zsh_func_d/git_alias.zsh
Normal 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
|
||||||
Reference in New Issue
Block a user