emplace 0.2.4

Command-line tool to mirror installed software on multiple machines.
emplace-0.2.4 is not a library.

emplace

Command-line tool to mirror installed software on multiple machines.

Build Status

Example

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
  • Package managers supported:
    • Apt (Linux)
    • Pacman (Linux)
    • Snap (Linux)
    • Chocolatey (Windows)
    • Cargo (*)
    • Rustup Component (*)
    • Python Pip (*)
    • Python Pip 3 (*)
    • Node Package Manager (*)
    • Homebrew (Mac)
    • Yum (Linux)
    • DNF (Linux)
    • Portage (Linux)
  • Shells supported:
    • Bash
    • Zsh
    • Fish
    • nu

Installation

Getting Started

  1. Install the emplace binary:

    Rust

    cargo install emplace
    
  2. Add the init script to your shell's config file:

    Bash

    Add the following to the end of ~/.bashrc:

    # ~/.bashrc
    
    source <(emplace init bash)
    

    Zsh

    Add the following to the end of ~/.zshrc:

    # ~/.zshrc
    
    eval "$(emplace init zsh)"
    

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:

cargo install topgrade
# -- or --
rustup component add rustfmt
# -- or --
sudo apt install meld
# -- or --
pacman -Sy zsh
# -- or --
sudo snap install scrcpy
# -- or --
npm install -g release
# -- or --
pip3 install --user termtosvg
# -- or --
choco install neovim

Synchronizing On Another Machine

Just invoke emplace install and you will be prompted with the packages to install:

emplace install