vc-home aims to simplify the bootstrap procedure of managing your dotfiles with vcsh. It sets up vcsh, mr, adds usable hooks and lays down simple directory that vcsh repositories can follow.
It is inspired by:
- Automatically download and setup
vcsh
andmr
by fetching files via curl/wget and git. - Sets up
.local/bin
for local binaries and shell scripts (added toPATH
) - vcsh hooks setup to:
- Enable sparse checkout.
- Ignore
README
,LICENSE
and other common development files. - Make backup copies of files that would be overwritten when cloning.
- Repositories can have
.gitignore
files stored in.gitignore.d/<repo-name>
of every repository
- mr
.mrconfig
setup to source files in:.config/mr/config.d
(for vcsh repositories) This allows any repositories to extendmr
configuration further.
- Autocomplete commands and list of repositories to clone for zsh
curl
orwget
git
rename
for one hook that is triggered if the paths of cloned files are busylynx
andjq
orgh
autorization to parsing the list of repositories for autocomplete
Run vc-home bootstrap
via this curl
one-liner:
$ curl https://raw.githubusercontent.com/svrvt/vc/main/bin/vc-home | bash -s bootstrap
You can use vc-home
to clone vcsh repositories:
$ vc-home clone awesome #relevant to "vcsh clone https://github.com/svrvt/vc_awesome"
vc-home
supports the following commands:
bootstrap
- used to bootstrap vcsh, mr and bootstrap vc.clone <Tab>
- used to clone vcsh repositories.mr co
is always run at the end.verify
- used to verify existingvc-home
setup.help
- show help
Examples:
$ vc-home clone rofi #relevant to "vcsh clone https://github.com/svrvt/vc_rofi"
$ vc-home verify
$ vc-home help
Copyright (c) 2024 Rustam Uzairov svrvt/vc
Copyright (c) 2024 Caleb Maclennan for pre/post-merge-unclobber hooks, que supporting script and idea for organize repo.
Copyright (c) 2016-2022 ek9 for vcsh-dotfiles script and SparseCheckout hooks.
Copyright (c) 2011-2015 Vincent Demeester for portions of code from vdemeester/vcsh-home project.
TBA