dtfls
v1.2.0
Published
Back up and restore your config files.
Readme
dtfls
Back up and restore your config files.
This is a redevelopment of dotfiles (which was written on shell script) to Node.js.
Requirements
- Node v22 or higher
Install
via npm:
npm install -g dtflsUsage
CLI
Print difference between local and system configs
dtfls diff <APP...>Install local configs to the system
dtfls install <APP...>Print system installation path
dtfls path <APP>Run post-install scripts (it is being run automatically after install)
dtfls postinstall <APP...>Pull configs from the system to the local folder
dtfls pull <APP...>
Use dtfls --help to read a common usage information and
dtfls <command> --help to read about a specific command.
--cmd option example
path.user.json:
{
"my-app": "remote-host@my-user:/"
}and run:
dtfls pull --cmd=scp my-app
dtfls install --cmd=scp my-appFolder structure
Each set of configs should be placed in separate folders.
Names of such folders should not contain spaces.
These folders should contain the same hierarchy which should be
in the user folder (~) of the target system.
Mapping of local path to system path for particular configs can be changed
with a file path.user.json.
Additionally there is a support for post-install scripts. They can be
added in postinstall.user file.
Example
Local repo structure:
my configs
\_ git
| \_ .gitconfig
|
|_ profile
| \_ .profile
|
|_ sublime-text-3
| \_ .config
| \_ sublime-text-3
| \_ Packages
| \_ User
| |_ Default (Linux).sublime-keymap
| |_ Default (Linux).sublime-mousemap
| \_ Preferences.sublime-settings
|
|_ zsh
| \_ .zshrc
|
|_ path.user.json
\_ postinstall.userAnd a workflow example:
cd "my configs"
git pull <--- pull changes from your repo with configs
dtfls install git <--- install git configs from the repo to system
dtfls pull sublime-text-3 <--- copy Sublime Text configs from system to the local repo
git commit -am "Update Sublime Text configs" <--- commit updated configs
git push <--- and push