Skip to content

chrsmutti/homer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

homer

Actions Status License: MIT

"Doh!" A CLI for managing your dotfiles!

Installation

cargo

homer can be installed using cargo:

cargo install --git https://github.com/chrsmutti/homer.git

Standalone

homer can also be installed as an executable. Download the latest compiled binaries and put it anywhere in your executable path.

Source

Prerequisites for building from source are:

Clone this repository and run cargo:

git clone github.com/chrsmutti/homer
cd homer
cargo build --release

# Optionally copy it to a dir in your $PATH.
cp target/release/homer ~/.local/bin

Usage

Create a dotfiles directory anywhere you'd like, this directory can be a git repo, for easy sharing and versioning. Inside it create a home directory.

Whenever you run homer inside the dotfiles directory, the same structure present in the home directory will be created into your $HOME dir. Every dir found will be created if it does not already exist, and every file will be linked.

The resulting structure should be as follows:

$HOME
├── dotfiles
│   └── home
│       ├── dir
│       │   ├── a
│       │   └── b
│       └── file
├── dir
│   ├── a -> ~/dotfiles/home/dir/a
│   └── b -> ~/dotfiles/home/dir/b
└── file -> ~/dotfiles/home/file

An action plan will always be shown, and then the user can choose to accept the changes or reject them (you can pass the --force flag to auto-accept the prompt).

homer 0.2.1
"Doh!" A CLI for managing your dotfiles!

USAGE:
    homer [FLAGS] [OPTIONS] --output <output>

FLAGS:
    -f, --force        Force the program to run without prompting for confirmation
    -h, --help         Prints help information
        --no-backup    Disable backup, an action plan will be created, when other files block symlink creation they will
                       be deleted instead of moved to a safe backup location
    -V, --version      Prints version information

OPTIONS:
    -i, --input <input>        Directory containing files to link into user's home directory [default: ./home]
    -o, --output <output>      Directory the files will be linked to, defaults to $HOME [env: HOME]
        --scripts <scripts>    Directory containing scripts that will be run after the plan is completed. If force flag
                               is passed, no confirmation prompt will be shown

This could be a bash script!!1!

Yes.

License

homer is licensed under the MIT License.

About

"Doh!" A CLI for managing your dotfiles!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages