dfl

Crates.iodfl
lib.rsdfl
version0.2.0
created_at2025-08-24 06:33:31.427438+00
updated_at2025-08-24 07:12:35.672159+00
descriptionA command-line tool for managing your dotfiles with Git.
homepage
repositoryhttps://github.com/aashish-thapa/dfl
max_upload_size
id1808123
size29,467
Aashish Thapa (aashish-thapa)

documentation

README

dfl: A Git-Powered Dotfile Manager

Build License: MIT Rust Crates.io Repo docs.rs

dfl is a simple, fast, and feature-rich command-line tool for managing your dotfiles with Git. It automates moving, symlinking, and syncing your configuration files across multiple machines.

Whether you're setting up a fresh dev box or keeping your fleet consistent, dfl provides a seamless workflow.


✨ Features

  • Automated Workflow: Uses Git under the hood to automatically add and commit files.
  • Centralized Repository: Keeps all your dotfiles in one place (~/.dfl).
  • Easy Deployment: A single command links all your configs on a new machine.
  • Built for Speed: Written in Rust for a fast, reliable experience.

🚀 Installation

📦 Install from crates.io (recommended)

If you have Rust installed:

cargo install dfl

This installs the binary to ~/.cargo/bin. Be sure that directory is in your PATH.


Screenshot

image

🔧 Build from source

  1. Clone the repository:

    git clone https://github.com/aashish-thapa/dfl.git
    cd dfl
    
  2. Build and install the executable:

    cargo build --release
    sudo mv target/release/dfl /usr/local/bin/
    

💡 Usage

1) Initialize Your Repository

Create ~/.dfl and initialize it as a Git repo:

dfl init

2) Add and Commit a Dotfile

Automatically move a file into the repo, create a symlink back, and commit:

dfl add ~/.bashrc

Tip: Repeat dfl add for other files like ~/.zshrc, ~/.gitconfig, ~/.config/nvim/init.lua, etc.

3) Connect to a Remote

To save your dotfiles to a remote repository like GitHub, first create an empty repository on GitHub, then add it to your dfl project.

dfl remote add https://github.com/your-username/mydotfiles.git

4) Push and Pull Changes

Now you can easily push your changes to the remote.

dfl push

5) Deploy on a New Machine

To get the latest changes on a new machine, first clone your repository into ~/.dfl, and then pull and sync.

cd ~
git clone https://github.com/your-username/mydotfiles.git .dfl
dfl pull
dfl sync

(If your tool uses a different subcommand name like deploy, replace accordingly.)


🤝 Contributing

We welcome contributions!

  1. Fork the repo
  2. Create a feature branch: git checkout -b feature/AmazingFeature
  3. Commit: git commit -m 'feat: Add amazing feature'
  4. Push: git push origin feature/AmazingFeature
  5. Open a Pull Request

📄 License

Licensed under the MIT License. See the LICENSE file for details.


🙏 Credits

Created by aashish-thapa.

Commit count: 12

cargo fmt