Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dreadwarrior/dotfiles
yadm managed dotfiles
https://github.com/dreadwarrior/dotfiles
bash dotfiles git homebrew macos manpages
Last synced: about 22 hours ago
JSON representation
yadm managed dotfiles
- Host: GitHub
- URL: https://github.com/dreadwarrior/dotfiles
- Owner: dreadwarrior
- License: mit
- Created: 2016-04-20T13:07:50.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2024-11-07T07:52:49.000Z (9 days ago)
- Last Synced: 2024-11-07T08:34:09.836Z (9 days ago)
- Topics: bash, dotfiles, git, homebrew, macos, manpages
- Language: HTML
- Homepage: https://dreadwarrior.github.io/dotfiles/
- Size: 237 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dotfiles
[yadm][yadm] managed dotfiles.
## Goals
1. Minimal dependency footprint ([yadm][yadm] uses `git` and `bash`)
2. **No** git submodules## Installation / setup
### Linux
~$ 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### MacOS
# 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## Development
### Requirements
- Pandoc, e.g. via Homebrew `brew install pandoc`
- ShellCheck, e.g. via Homebrew `brew install shellcheck`
- JBang, e.g. via [SDKMAN!](https://sdkman.io/install)### Update `.local/bin`-commands
- use Posix shell style whenever possible
- consider using [Argbash](https://argbash.io/) if argument and option handling is needed (non-Posix style only :/)
- use `shellcheck` for linting
- don't forget `chmod u+x`
- add [Pandoc compatible](https://pandoc.org/) 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#### Build man pages
make clean all
#### Add new man page sections
1. 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_SECTIONnnnWhere _nnn_ reflects the new [section](https://en.wikipedia.org/wiki/Man_page#Manual_sections) (e.g. "2").
2. Add new `OBJS_` variables to `all`-target:
3. Add new rules for `BUILD_DIR_MAN_` and `BUILD_DIR__HTM_` targets
4. Adjust `clean target` for cleaning up new build dirs#### Upgrade gh-pages branch
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
<Commit the tree to the specific branch:
> git commit-tree -p gh-pages -m ""
<Update references on specific branch:
git update-ref refs/heads/gh-pages
The branch is now ready to be pushed to upstream.
## TODOs
1. Test if these files are really needed and check security concerns:
- .local/share/gtg/{gtg_tasks,projects,tags}.xml
- .local/share/gnome-shell/extensions2. Integrate global system name probing (`uname -s`), individual usage by `dotfiles-install/*` scripts
## Links / Notes
- [Upgrade to bash 4 in Mac OS X](http://clubmate.fi/upgrade-to-bash-4-in-mac-os-x/)
- `⌘ CMD`+`⇧ SHIFT`+`.` Reveals hidden files in Open/Save dialogs on Mac OS
- [Spring-Cleaning Homebrew Dependencies](http://patricklenz.co/blog/2012/5/21/spring-cleaning-homebrew-dependencies)
- [Standard Exit Status Codes in Linux](https://www.baeldung.com/linux/status-codes)[yadm]: https://github.com/TheLocehiliosan/yadm