Features
-
Outputs a human-readable (RON) file to sync between machines:
.emplace
-
Version control with git to automatically push & pull updates
-
Automatic prompt after installing a package
-
Integrates well with dotfiles repositories
-
Parses history file
-
Package managers supported:
OS Package Manager Apt GNU Guix Nix Pacman RUA Yay Snap DNF/YUM Homebrew Chocolatey Scoop Cargo Rustup Component Python Pip Python Pip 3 Node Package Manager -
Shells supported:
Shell Bash Zsh Fish Nu
Installation
Getting Started
-
Install the emplace binary:
Windows
Scoop
NixOS
Linux, MacOS, Windows
Rust
Binary
Download the latest binary from releases for your OS and put it somewhere in your PATH.
-
Add the init script to your shell's config file:
Bash
Add the following to the end of
~/.bashrc
:# ~/.bashrc
Zsh
Add the following to the end of
~/.zshrc
:# ~/.zshrc
Fish
Add the following to the end of
~/.config/fish/config.fish
:# ~/.config/fish/config.fish |
Nu
Run the following in your shell:
|
-
Change the configuration file (optional)
When you want to use a different configuration file from the default one you can change
emplace init $SHELL
withemplace init $SHELL -c path/to/my/config.toml
.This will set the
EMPLACE_CONFIG="path/to/my/config.toml"
environment variable. This can be overwritten withexport EMPLACE_CONFIG="path/to/other/config.toml"
after the init function, except in the Nu shell.
Usage
Mirroring Packages
Invoke the supported package manager of choice using the command line in a normal way and you will automatically be prompted to mirror the package, for example:
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
# -- or --
Synchronizing On Another Machine
Just invoke emplace install
, and you will be prompted with the packages to install:
History Analysis
You can also parse history files, this will try to extract installation commands from each line.
Bash & Zsh
Fish
Removing Synchronized Packages
Run emplace clean
and select the packages you want to be cleaned, they won't be removed from your system.
Creating and modifying config files
Run emplace config --new
to create a new config and configure the repository or emplace config --path
to retrieve the path to the configuration file.
Contributors
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!