https://github.com/phts/dtfls
Back up and restore your config files
https://github.com/phts/dtfls
configs dotfiles npm-package
Last synced: about 2 months ago
JSON representation
Back up and restore your config files
- Host: GitHub
- URL: https://github.com/phts/dtfls
- Owner: phts
- License: mit
- Created: 2018-05-25T21:00:08.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-02-12T19:57:53.000Z (over 7 years ago)
- Last Synced: 2025-03-04T11:16:26.846Z (over 1 year ago)
- Topics: configs, dotfiles, npm-package
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/dtfls
- Size: 43.9 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dtfls
[](https://www.npmjs.com/package/dtfls)
Back up and restore your config files.
This is a redevelopment of [dotfiles](https://github.com/phts/dotfiles) (which was written on shell script) to Node.js.
## Requirements
- Node v22 or higher
## Install
**via npm**:
```
npm install -g dtfls
```
## Usage
### CLI
- Print difference between local and system configs
```sh
dtfls diff
```
- Install local configs to the system
```sh
dtfls install
```
- Print system installation path
```sh
dtfls path
```
- Run post-install scripts (it is being run automatically after install)
```sh
dtfls postinstall
```
- Pull configs from the system to the local folder
```sh
dtfls pull
```
Use `dtfls --help` to read a common usage information and
`dtfls --help` to read about a specific command.
### `--cmd` option example
path.user.json:
```
{
"my-app": "remote-host@my-user:/"
}
```
and run:
```sh
dtfls pull --cmd=scp my-app
dtfls install --cmd=scp my-app
```
### Folder 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`](https://github.com/phts/dtfls/blob/master/examples/path.user.json.example).
Additionally there is a support for post-install scripts. They can be
added in [`postinstall.user`](https://github.com/phts/dtfls/blob/master/examples/postinstall.user.example) 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.user
```
And a workflow example:
```sh
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
```