commit 98569931146bde048e9113aa01567d674451ef90 Author: Alexander Wühr Date: Sun Feb 18 12:36:03 2024 +0100 Initial commit diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..dca3142 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,7 @@ +[submodule "dotbot"] + path = dotbot + url = https://github.com/anishathalye/dotbot + ignore = dirty +[submodule "dotconf/oh-my-bash"] + path = dotconf/oh-my-bash + url = https://github.com/ohmybash/oh-my-bash.git diff --git a/dotbot b/dotbot new file mode 160000 index 0000000..3f9e409 --- /dev/null +++ b/dotbot @@ -0,0 +1 @@ +Subproject commit 3f9e409669172ad662e82fca791f0ad16dce5edd diff --git a/dotconf/bash_profile b/dotconf/bash_profile new file mode 100644 index 0000000..7872597 --- /dev/null +++ b/dotconf/bash_profile @@ -0,0 +1,11 @@ +# .bash_profile -*- mode: sh -*- + +# Load login settings and environment variables +if [[ -f ~/.profile ]]; then + source ~/.profile +fi + +# Load interactive settings +if [[ -f ~/.bashrc ]]; then + source ~/.bashrc +fi diff --git a/dotconf/bashrc b/dotconf/bashrc new file mode 100644 index 0000000..4f1851d --- /dev/null +++ b/dotconf/bashrc @@ -0,0 +1,144 @@ +# Enable the subsequent settings only in interactive sessions +case $- in + *i*) ;; + *) return;; +esac + +# Path to your oh-my-bash installation. +export OSH=~/.oh-my-bash + +# Set name of the theme to load. Optionally, if you set this to "random" +# it'll load a random theme each time that oh-my-bash is loaded. +OSH_THEME="font" + +# If you set OSH_THEME to "random", you can ignore themes you don't like. +# OMB_THEME_RANDOM_IGNORED=("powerbash10k" "wanelo") + +# Uncomment the following line to use case-sensitive completion. +# OMB_CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. Case +# sensitive completion must be off. _ and - will be interchangeable. +# OMB_HYPHEN_SENSITIVE="false" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_OSH_DAYS=13 + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you don't want the repository to be considered dirty +# if there are untracked files. +# SCM_GIT_DISABLE_UNTRACKED_DIRTY="true" + +# Uncomment the following line if you want to completely ignore the presence +# of untracked files in the repository. +# SCM_GIT_IGNORE_UNTRACKED="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. One of the following values can +# be used to specify the timestamp format. +# * 'mm/dd/yyyy' # mm/dd/yyyy + time +# * 'dd.mm.yyyy' # dd.mm.yyyy + time +# * 'yyyy-mm-dd' # yyyy-mm-dd + time +# * '[mm/dd/yyyy]' # [mm/dd/yyyy] + [time] with colors +# * '[dd.mm.yyyy]' # [dd.mm.yyyy] + [time] with colors +# * '[yyyy-mm-dd]' # [yyyy-mm-dd] + [time] with colors +# If not set, the default value is 'yyyy-mm-dd'. +# HIST_STAMPS='yyyy-mm-dd' + +# Uncomment the following line if you do not want OMB to overwrite the existing +# aliases by the default OMB aliases defined in lib/*.sh +# OMB_DEFAULT_ALIASES="check" + +# Would you like to use another custom folder than $OSH/custom? +# OSH_CUSTOM=/path/to/new-custom-folder + +# To disable the uses of "sudo" by oh-my-bash, please set "false" to +# this variable. The default behavior for the empty value is "true". +OMB_USE_SUDO=true + +# To enable/disable display of Python virtualenv and condaenv +# OMB_PROMPT_SHOW_PYTHON_VENV=true # enable +# OMB_PROMPT_SHOW_PYTHON_VENV=false # disable + +# Which completions would you like to load? (completions can be found in ~/.oh-my-bash/completions/*) +# Custom completions may be added to ~/.oh-my-bash/custom/completions/ +# Example format: completions=(ssh git bundler gem pip pip3) +# Add wisely, as too many completions slow down shell startup. +completions=( + git + composer + ssh +) + +# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*) +# Custom aliases may be added to ~/.oh-my-bash/custom/aliases/ +# Example format: aliases=(vagrant composer git-avh) +# Add wisely, as too many aliases slow down shell startup. +aliases=( + general +) + +# Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*) +# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=( + git + bashmarks +) + +# Which plugins would you like to conditionally load? (plugins can be found in ~/.oh-my-bash/plugins/*) +# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/ +# Example format: +# if [ "$DISPLAY" ] || [ "$SSH" ]; then +# plugins+=(tmux-autoattach) +# fi + +source "$OSH"/oh-my-bash.sh + +# User configuration +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# ssh +# export SSH_KEY_PATH="~/.ssh/rsa_id" + +# Set personal aliases, overriding those provided by oh-my-bash libs, +# plugins, and themes. Aliases can be placed here, though oh-my-bash +# users are encouraged to define aliases within the OSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias bashconfig="mate ~/.bashrc" +# alias ohmybash="mate ~/.oh-my-bash" diff --git a/dotconf/gitconfig b/dotconf/gitconfig new file mode 100644 index 0000000..a6a4ae4 --- /dev/null +++ b/dotconf/gitconfig @@ -0,0 +1,72 @@ +[alias] + f = flow + ff = flow feature + fr = flow release + + b = branch + co = checkout + cm = checkout master + cb = checkout -b + + where = branch -r --contains + + show = show --show-signature + + ci = commit + + ciam = "!f() { BRANCH=`git branch --list | grep -E '\\*' | cut -d ' ' -f2`; MSG=\"($BRANCH) $1\"; git ci -am"\"$MSG\""; }; f" + cow = "!f() { git checkout "WE-$1"; }; f" + cbw = "!f() { git cb "WE-$1"; }; f" + + amend = commit -a --amend + d = diff + ds = diff --shortstat + + ls = log --pretty=format:"%C(yellow)%h%Cgreen%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --no-merges + ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat --no-merges + + unstage = reset HEAD -- + cp = cherry-pick -s -x + s = status -sb + + sl = stash list + sa = stash apply + sp = stash pop + ss = stash save + + rba = rebase --abort + rbc = rebase --continue + + unpushed = "log --branches --not --remotes --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" + + # clc = "!f() { git --no-pager ls -1; git --no-pager log --no-merges --pretty=format:'%h' -1 | xclip; }; f" + + up = "!gitup" + + ns = log staging..master --no-merges --oneline --color --pretty=format:"%C(yellow)%h%Cgreen%d\\ %Creset%s%Cblue\\ [%cn]" --decorate + nr = log deployment..staging --no-merges --oneline --color --pretty=format:"%C(yellow)%h%Cgreen%d\\ %Creset%s%Cblue\\ [%cn]" --decorate + + purge-local-branches = "!f() { git cmp; git branch --merged | grep -vE 'master|staging|deployment|\\*' | xargs -n 1 git b -d; git co -;}; f" + appraise = !/bin/git-appraise + +[user] + name = Alexander Wühr + signingKey = 0B7107C9393169F4 + email = alex@pnyhf.eu +[push] + default = current +[core] + excludesfile = ~/.config/git/ignore + editor = vim +[commit] + gpgSign = true +[tag] + gpgSign = true + +[init] + defaultBranch = main +[gpg "ssh"] + allowedSignersFile = /home/awuehr/.ssh/allowed_signers + +[includeIf "gitdir:~/dev/scn/"] + path = ~/dev/scn/.gitconfig diff --git a/dotconf/gitignore b/dotconf/gitignore new file mode 100644 index 0000000..fd36e61 --- /dev/null +++ b/dotconf/gitignore @@ -0,0 +1,18 @@ +dev/ +.idea/ +.keep +webgrind/ +campaign-designer/ +DefaultConfig.php +.env +.out +.mailmap +*.pid +*.code-workspace +.php-version +lsp/ +.psalm.xml +GPUCache/ +.todo +.yarn +.envrc diff --git a/dotconf/oh-my-bash b/dotconf/oh-my-bash new file mode 160000 index 0000000..d556831 --- /dev/null +++ b/dotconf/oh-my-bash @@ -0,0 +1 @@ +Subproject commit d55683133b6be49d1b649b3bc292285038a2e2eb diff --git a/install b/install new file mode 100755 index 0000000..5a7e72c --- /dev/null +++ b/install @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +set -e + +CONFIG="install.conf.yaml" +DOTBOT_DIR="dotbot" + +DOTBOT_BIN="bin/dotbot" +BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +cd "${BASEDIR}" +git -C "${DOTBOT_DIR}" submodule sync --quiet --recursive +git submodule update --init --recursive "${DOTBOT_DIR}" + +"${BASEDIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASEDIR}" -c "${CONFIG}" "${@}" diff --git a/install.conf.yaml b/install.conf.yaml new file mode 100644 index 0000000..51c3b46 --- /dev/null +++ b/install.conf.yaml @@ -0,0 +1,12 @@ +- defaults: + link: + relink: true + +- clean: ["~"] + +- link: + ~/: + prefix: '.' + path: dotconf/* + glob: true +