diff --git a/config/home.nix b/config/home.nix index 6d5cd17..d93f32c 100644 --- a/config/home.nix +++ b/config/home.nix @@ -249,11 +249,72 @@ "..." = "cd ../.."; rebuild = "sudo nixos-rebuild switch"; update = "sudo nixos-rebuild switch --upgrade"; + c = "composer"; + gclb = "git-cleanup-local-branches"; + lzd = "lazydocker"; }; initContent = '' # Powerlevel10k Konfiguration laden (falls vorhanden) [[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh + + function composer() { + mkdir -p "''${HOME}/.config/composer" + mkdir -p "''${HOME}/.cache/composer" + + if ! ${pkgs.docker}/bin/docker network inspect db >/dev/null 2>&1; then + echo "Erstelle Docker-Netzwerk 'db'..." + ${pkgs.docker}/bin/docker network create db + fi + + SSH_AUTH_PATH=$(readlink -f "''${SSH_AUTH_SOCK:-/dev/null}") + + docker run -t \ + --rm \ + --user ''$(id -u):33 \ + --env COMPOSER_CACHE_DIR=/cache \ + --env SSH_AUTH_SOCK=/ssh-agent \ + --env CI_HOST \ + --env CI_PROJECT_DIR \ + --env ENVIRONMENT_NAME \ + --env INSTANCE_ID \ + --env ADDITIONAL_CONFIG_FILE \ + --env TYPO3_CONTEXT \ + --env STAGE \ + --network db \ + --volume "''${SSH_AUTH_PATH}":/ssh-agent \ + --volume /etc/passwd:/etc/passwd:ro \ + --volume "''${HOME}":"''${HOME}" \ + --volume "''${HOME}/.config/composer":/tmp \ + --volume "''${HOME}/.cache/composer":/cache \ + --volume "''${PWD%/}":/app \ + evoweb/php:composer $@ + } + + function git-cleanup-local-branches { + ${pkgs.git}/bin/git fetch -p + + FOR_EACH_REF=$(${pkgs.git}/bin/git for-each-ref --format '%(refname) %(upstream:track)' refs/heads) + GONE_BRANCHES=$(echo "''$FOR_EACH_REF" | ${pkgs.gawk}/bin/awk '$2 == "[gone]" {sub("refs/heads/", "", $1); print $1}') + + if [ -z "''$GONE_BRANCHES" ]; then + echo "Found now orphan local branches." + exit 0 + fi + + for BRANCH in ''$GONE_BRANCHES; do + echo "Delete local branch: ''$BRANCH" + ${pkgs.git}/bin/git branch -D "''$BRANCH" + done + } + + function lazydocker() { + mkdir -p ''$HOME/.config/lazydocker + docker run --rm -it \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + --volume ''$HOME/.config/lazydocker:/.config/jesseduffield/lazydocker \ + lazyteam/lazydocker + } ''; }; home.file.".p10k.zsh".source = ./config/p10k.zsh;