dotgit icon indicating copy to clipboard operation
dotgit copied to clipboard

Links to dotfile directories that are git submodules

Open gavinschenk opened this issue 4 years ago • 0 comments

Conclusion

Some of my symbolic links in $HOME points to folders that are managed as git submodules inside my current dotfile repo. If I could manage this, I would like to switch my dofile handling to dotgit.

Thank you for this software!

Current state of my dotfiles

My dotfiles project contains a handcrafted install.sh script. Every time I add a new module I have to add functions here. Running my installer gives an output like:

`

dotfile installer
----------------------------------------------
Please enter which dotfile to install
vimrc              (1) - installed
git                (2) - installed
tmux               (3) - installed
mutt               (4) - installed
pam_mount          (5) - 
~/bin              (6) - installed
bash               (7) - installed
liquidprompt       (8) - installed
weechat            (9) - installed
ssh_config         (a) - installed
mbsync_config      (b) - installed
user-systemd-units (c) - installed
multimount         (d) - installed
spacemacs          (e) - installed
chemacs            (f) - installed
doom               (g) - installed
                   (Q)uit
----------------------------------------------

` The script checks if a module is installed in ~ and if not it provides mechanism to install it. It works but is always a lot of manual work. So I'm looking for something better and came across this project.

I want to share one of my use case and ask if/how you would map it to dotgit. For some modules I use git submodules inside my dotfiles repo. The structure in my dotfiles repo looks like:

(sub)folders

`dotfiles on  master [⇡] ➜ tree -d -L 2 . ├── afew ├── bash ├── bin ├── chemacs │   └── chemacs ├── doom │   ├── doom.d │   └── emacs.d-doom ├── dotgit │   ├── docs │   ├── dotgit │   ├── old │   ├── pkg │   └── tests ├── git ├── liquidprompt │   └── liquidprompt ├── mbsync ├── msmtp ├── multimount ├── mutt │   └── mutt ├── notmuch │   └── hooks ├── pam ├── spacemacs │   └── emacs.d-spacemacs ├── ssh ├── systemd ├── tmux │   └── tmux ├── vim │   └── pack └── weechat ├── certs ├── logs ├── perl ├── python ├── ruby ├── script └── xfer

41 directories`

git submodules in dotfiles

dotfiles on  master [⇡] ➜ git submodule 6b9810acfaeec077f26c9ec798059cd9e7106072 chemacs/chemacs (v1.0-5-g6b9810a) 39d6caf090549f1ec39f84b8704749ffb168e0be doom/emacs.d-doom (v2.0-12220-g39d6caf09) b5a31d72fe2dcc7f5417ece7495e08807e959664 dotgit (1.0.3-331-gb5a31d7) ec891eaada5cd427292055603c7dbe977d478e67 liquidprompt/liquidprompt (v1.12.1) c0f61fa035facc45e979d09c7c4efcfdf333d3fe spacemacs/emacs.d-spacemacs (v0.200.0-4257-gc0f61fa03) 1531b3770a7cf7373d15fedd239c5331b99342d1 tmux/tmux/plugins/tmux-continuum (v3.1.0-37-g1531b37) 77ca3aab2aed8ede3e2b941079b1c92dd221cf5f tmux/tmux/plugins/tmux-copycat (v3.0.0-15-g77ca3aa) 2db63de3b08fc64831d833240749133cecb67d92 tmux/tmux/plugins/tmux-pain-control (v1.0.0-19-g2db63de) 327c0481ad20c429b4e692e092659f8b3346b08f tmux/tmux/plugins/tmux-resurrect (v2.4.0-109-g327c048) 09ec86be38eae98ffc27bd0dde605ed10ae0dc89 tmux/tmux/plugins/tmux-sessionist (v2.3.0-25-g09ec86b) 648005db64d9bf3c4650eff694ecb6cf3e42b0c8 tmux/tmux/plugins/tmux-yank (v2.1.0-77-g648005d) 06d41226af02ca4f5bcf58169dd4f0a2aa42218c tmux/tmux/plugins/tpm (v3.0.0-47-g06d4122) 52496c05e28f69bd2a1659ccaf374dc739e86cb5 vim/pack/plugins/start/cscope-maps (heads/master) e653a682705234e9bffac0c32995f339e66df684 vim/pack/plugins/start/nerdtree (5.0.0-302-ge653a68) 1d7ec4e7cd7ee6b689baecd9002342cc55de6c20 vim/pack/plugins/start/papercolor-theme (v0.9-58-g1d7ec4e) 387bbadda98e1376ff3871aa461b1f0abd4ece70 vim/pack/plugins/start/tagbar (v2.7-58-g387bbad) c7fb175d3565159699885653767214a6aa583ea4 vim/pack/plugins/start/vim-airline (v0.9-148-gc7fb175) d2d2da11c58c09d314b23029bdd4a4ab747d76e2 vim/pack/plugins/start/vim-gitgutter (heads/master) 7da66c1b34dc2976a70c9393c7e0c9f47e129e89 vim/pack/plugins/start/vim-linux-coding-style (v0.4-3-g7da66c1)

Some examples of my ~

  • .mbsyncrc -> projects/dotfiles/mbsync/mbsyncrc
  • .msmtprc -> projects/dotfiles/msmtp/msmtprc
  • .mutt -> projects/dotfiles/mutt/mutt
  • .mutt_certificates -> projects/dotfiles/mutt/mutt_certificates
  • .notmuch-config -> projects/dotfiles/notmuch/notmuch-config
  • .spacemacs -> projects/dotfiles/spacemacs/spacemacs
  • .tmux -> projects/dotfiles/tmux/tmux
  • .tmux.conf -> projects/dotfiles/tmux/tmux.conf
  • .tmuxline -> projects/dotfiles/tmux/tmuxline
  • .vim -> projects/dotfiles/vim
  • .vimrc -> projects/dotfiles/vim/vimrc
  • .weechat -> projects/dotfiles/weechat

gavinschenk avatar Dec 14 '20 14:12 gavinschenk