emplace 0.2.10

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

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)
    • Scoop (Windows)
    • Cargo (*)
    • Rustup Component (*)
    • Python Pip (*)
    • Python Pip 3 (*)
    • Node Package Manager (*)
  • Shells supported:
    • Bash
    • Zsh
    • Fish

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)"
    
    

    Fish

    Add the following to the end of ~/.config/fish/config.fish:

    # ~/.config/fish/config.fish
    
    
    emplace init fish | source
    
    

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

# -- or --

scoop install curl

Synchronizing On Another Machine

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

emplace install

Removing Synchronized Packages

Run emplace clean and select the packages you want to be cleaned, they won't be removed from your system.