.dotfiles
management system.
Keep track of all your configuration files on your system 🗂️
This system will help you spread the files under the dots
directory across
your system via symbolic links.
-
Clone this
repo
so you can make it yours -
Put all your files in the "dots" directory (picture this folder as your home directory on your system)
-
And after you've done the previous steps you're done mate
The initial command for spreading for your files would be this one:
make link
Below are the commands for you to use (there are others but are for utilities)
Basic usage of the commands
make [command] [OPTION=*]
This command as explained earlier this command will spread the files over your system.
This link also will take care of another directory of this repo
named secrets
,
this directory will work exactly the same way as the dots
directory but with
one difference, it WILL NOT be tracked on this repository. This is for 'secret'
files like some gpg
, ssh
, etc...
Here is how the mapping between the files in the dots
and secrets
directory
will look like:
dots/foo -> ~/foo
dots/.config/nvim/init -> ~/.config/nvim/init
secrets/.password -> ~/.password
secrets/.ssh/id_rsa -> secrets/.ssh/id_rsa
Cleans (deletes) all your files across the system. This will come handy if you
want to move the location of your symfiles
repo
to other location.
This is a combination of the commands clean
+ link
. An example for this
command would be that you removed a file from the repo
and the link
is still
on your system, with this you eliminate all of the links and only add the ones
still in the repo
.
Notice that this will only work on these systems below:
- Arch Linux
- Macos
This will look for two needed files that comes with this repo
as default
*.csv
files for you to use which are
config/apps-common.csv
config/apps-mac.csv
and install any dependency you specify on them.
In the CSV=*
variable you can specify any *.csv
file(s) you want to use other
than the two common ones that are on the initial setup.
Example:
make install CSV="foo.csv bar.csv"
The above will install all the dependencies listed in the foo.csv
and
bar.csv
files.
Option | Name | Description |
---|---|---|
main | Empty means to use your default package manager |
|
a | aur | Find packages on your secondary package manager |
f | function | This will look for a custom script under the config/functions/<name>.sh |
g | go | Installs packages with go |
gem | gem | Installs packages with ruby |
m | make | This is very specific for installing the aur |
node | node | Installs packages with nodejs |
pip | pip | Installs packages with your version of python |
Note: Remember to activate the package manager you want to use for installing any dependency before installing any package.
This will list all the installed packages and their status code. If some of
them cannot be installed correctly they will have an 1
as status code and 0
if they are correctly installed.
Example:
- node - :: peerflix :: 0
This print all the raw stdout
for every installed package.
Example:
:: peerflix - node - ::
yarn global v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents@1.2.11: The platform "linux" is incompatible with this module.
info "fsevents@1.2.11" is an optional dependency and failed compatibility check.
Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "peerflix@0.39.0" with binaries:
- peerflix
Done in 2.20s.
Required: shellcheck (it is on by default on the
config/apps-common.csv
file)
This will test all your *.sh
files in the repo
and also any file on these two
directories
dots/.scripts
dots/.zsh
This will open any file containing an error
or a warning
for you to edit
inside the glorious, marvelous, powerful, shiny, immune editor in the whole
world ... neovim
. ❤️
Completed | Task |
---|---|
Make this system use *.yaml for configurations |
|
Enable a custom editor for the make-test-fix command |
Leave any feedback here 👾