2 releases

0.1.1 Aug 10, 2024
0.1.0 Aug 10, 2024

#1237 in Command line utilities

Download history 155/week @ 2024-08-05 46/week @ 2024-08-12

95 downloads per month

GPL-3.0 license

25KB
455 lines

Rusted-YADM (Yet Another Dotfile Manager)

Rusted-YADM is a command-line dotfile manager written in Rust. It helps you manage, version control, and synchronize your dotfiles across multiple machines.

Features

  • Clone dotfile repositories from Git (HTTPS and SSH)
  • Add new dotfiles to the repository
  • Commit changes to your dotfiles
  • Push changes to remote repository
  • Automatically copy dotfiles to your home directory after cloning

Installation

Prerequisites

  • Rust and Cargo (latest stable version)
  • Git

Building from source

  1. Clone this repository:

    git clone https://github.com/M1n-74316D65/rusted-yadm.git
    cd rusted-yadm
    
  2. Build the project:

    cargo build --release
    
  3. Install the binary:

    cargo install --path .
    

Usage

Clone a repository

To clone a repository, use the clone subcommand followed by the repository URL and the desired destination directory:

rusted-yadm clone https://github.com/M1n-74316D65/dotfiles.git

This will clone the repository to the specified directory and automatically copy the files to your home directory.

Force clone:

rusted-yadm clone https://github.com/M1n-74316D65/dotfiles.git -f

Add a file to the repository

To add a file to the repository, use the add subcommand followed by the path to the file:

rusted-yadm add ~/.bashrc

This will add the specified file to the repository and commit the changes.

Commit changes

To commit changes to the repository, use the commit subcommand followed by the commit message:

rusted-yadm commit "Initial commit"

This will commit the changes to the repository.

Push changes

To push changes to the remote repository, use the push subcommand:

rusted-yadm push

This will push the changes to the remote repository.

Contributing

Contributions are welcome! If you have any suggestions or improvements, please open an issue or submit a pull request.

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more information.

Dependencies

~11–19MB
~344K SLoC