#!/bin/env fish
begin
    source "$(status dirname)/../../Scripts/software.fish"

    function configureSW -S
        git config --global init.defaultBranch "main"
        git config --global user.name "Manuel Thalmann"
        git config --global user.email "m@nuth.ch"

        begin # Git Flow
            set -l dir (mktemp -d)

            pushd "$dir" > /dev/null
                git init
                git commit --allow-empty -m "Initial commit" > /dev/null
                git branch master || true &> /dev/null
                git branch main || true &> /dev/null
                git branch dev || true &> /dev/null
                yes "" | git flow init &> /dev/null
                git flow config set --global master main > /dev/null
                git flow config set --global develop dev > /dev/null
            popd > /dev/null

            rm -rf "$dir"
        end

        git config --global alias.ahfange init
        git config --global alias.tuedezue add
        git config --global alias.beschuldig blame
        git config --global alias.zieh pull
        git config --global alias.druck push
        git config --global alias.machnah clone
        git config --global alias.hol fetch
        git config --global alias.zwiigab branch
        git config --global alias.buechiih commit
        git config --global alias.eich rebase
        git config --global alias.erd rebase
        git config --global alias.gahufwiifelde rebase
        git config --global alias.vergliich diff
        git config --global alias.tuezemme merge
        git config --global alias.versorg stash
        git config --global alias.markier tag
        git config --global alias.pflueckoepfel cherry-pick
        git config --global alias.pflueckhimbeeri cherry-pick
        git config --global alias.buechuus checkout
        git config --global alias.quaetsch 'merge --squash'
        git config --global alias.pfudle 'push --force'
        git config --global alias.beschuldigung blame
        git config --global alias.zwiigli branch
        git config --global alias.tagebuech log
        git config --global alias.versteck stash
        git config --global alias.zuestand status
        git config --global alias.markierig tag
    end
end