yadm managed dotfiles.
- Minimal dependency footprint (yadm uses
git
andbash
) - No git submodules
~$ sudo apt install yadm
~$ cd $HOME
~$ yadm clone [email protected]:dreadwarrior/dotfiles
~$ # the next step is optional for YADM configuration on a business machine:
~$ yadm config local.class work
~$ yadm alt
~$ source ~/.bashrc
~$ dotfiles_install
# Install Homebrew + yadm
~$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
~$ brew install yadm
# Update bash
~$ brew install bash
~$ sudo bash -c 'echo /usr/local/bin/bash >> /etc/shells'
~$ chsh -s /usr/local/bin/bash
# same as on Linux:
~$ cd $HOME
~$ yadm clone [email protected]:dreadwarrior/dotfiles
~$ # the next step is optional for YADM configuration on a business machine:
~$ yadm config local.class work
~$ yadm alt
~$ source ~/.bashrc
~$ dotfiles_install
~$ $(brew --prefix)/opt/fzf/install
- Pandoc, e.g. via Homebrew
brew install pandoc
- ShellCheck, e.g. via Homebrew
brew install shellcheck
- JBang, e.g. via SDKMAN!
- use Posix shell style whenever possible
- consider using Argbash if argument and option handling is needed (non-Posix style only :/)
- use
shellcheck
for linting - don't forget
chmod u+x
- add Pandoc compatible man page markdown source in
/man
subdirectory - optional:
- adjust
dotfiles_commands.7.md
with link to new man page - adjust
index.md
with link to new man page
- adjust
make clean all
-
Add new variables with appropriate values (use existing ones as examples):
BUILD_DIR_MAN_SECTIONnnn BUILD_DIR_HTM_SECTIONnnn SRCS_SECTIONnnn OBJS_MAN_SECTIONnnn OBJS_HTM_SECTIONnnn
Where nnn reflects the new section (e.g. "2").
-
Add new
OBJS_
variables toall
-target: -
Add new rules for
BUILD_DIR_MAN_
andBUILD_DIR__HTM_
targets -
Adjust
clean target
for cleaning up new build dirs
Create new branch if not existing already in the repository:
true | git mktree | xargs git commit-tree | xargs git branch gh-pages
Write Git tree object with current (committed) state of the static resources folder:
> git write-tree --prefix=.local/bin/man
< <Git Tree ID>
Commit the tree to the specific branch:
> git commit-tree -p gh-pages -m "<Your commit message>" <Git Tree ID>
< <Git Commit ID>
Update references on specific branch:
git update-ref refs/heads/gh-pages <Git Commit ID>
The branch is now ready to be pushed to upstream.
-
Test if these files are really needed and check security concerns:
- .local/share/gtg/{gtg_tasks,projects,tags}.xml
- .local/share/gnome-shell/extensions
-
Integrate global system name probing (
uname -s
), individual usage bydotfiles-install/*
scripts
- Upgrade to bash 4 in Mac OS X
⌘ CMD
+⇧ SHIFT
+.
Reveals hidden files in Open/Save dialogs on Mac OS- Spring-Cleaning Homebrew Dependencies
- Standard Exit Status Codes in Linux