aboutsummaryrefslogtreecommitdiff
path: root/.config/zsh
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2023-04-10 22:58:35 +0200
committersrdusr <trevorgray@srdusr.com>2023-04-10 22:58:35 +0200
commit9620cd63ead3d53125a343981941669bf438eefe (patch)
treeef194e07cce4399a368b3653d2ee88e126039d9b /.config/zsh
parent966e0a6ff081aebc6a578f5f14bdff5a876a33a5 (diff)
downloaddotfiles-9620cd63ead3d53125a343981941669bf438eefe.tar.gz
dotfiles-9620cd63ead3d53125a343981941669bf438eefe.zip
Set bare dotfiles repository git environment variables dynamically
Diffstat (limited to '.config/zsh')
-rw-r--r--.config/zsh/.zshrc25
1 files changed, 22 insertions, 3 deletions
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
index e27e0bf..28017b3 100644
--- a/.config/zsh/.zshrc
+++ b/.config/zsh/.zshrc
@@ -370,10 +370,29 @@ extract () {
### Dotfiles
alias config='git --git-dir=$HOME/.cfg --work-tree=$HOME'
+### Set bare dotfiles repository git environment variables dynamically
+function set_git_env_vars() {
+ local git_dir="$(git rev-parse --git-dir -C . 2>/dev/null)"
+ if [[ -n "$git_dir" ]]; then
+ local is_bare="$(git -C "$git_dir" rev-parse --is-bare-repository 2>/dev/null)"
+ if [[ "$is_bare" == "true" ]]; then
+ export GIT_DIR="$HOME/.cfg"
+ #export GIT_WORK_TREE="$HOME"
+ export GIT_WORK_TREE=$(realpath $(eval echo ~))
+ #export GIT_WORK_TREE="$HOME/$(basename "$(git rev-parse --show-toplevel)")"
+ else
+ unset GIT_DIR
+ unset GIT_WORK_TREE
+ fi
+ else
+ export GIT_DIR="$HOME/.cfg"
+ #export GIT_WORK_TREE="$HOME"
+ export GIT_WORK_TREE=$(realpath $(eval echo ~))
+ #export GIT_WORK_TREE="$HOME/$(basename "$(git rev-parse --show-toplevel)")"
+ fi
+}
+set_git_env_vars
-#alias cfg='config subtree pull --prefx'
-#alias gsp="git subtree push --prefix=_site git@github.com:mertnuhoglu/blog_datascience.git"
-#alias gsp="git subtree push.local/bin/scripts https://github.com/srdusr/scripts.git main --squash
function gsp
{
# Config file for subtrees