Skip to content

πŸ¦€ Install modern Rust-based replacements of packages such as coreutils, findutils, diffutils and sudo, making them the default on an Ubuntu system πŸ¦€

License

Notifications You must be signed in to change notification settings

jnsgruk/oxidizr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oxidizr

oxidizr is a command-line utility for managing system experiments that replace traditional Unix utilities with modern Rust-based alternatives on Ubuntu systems.

It currently supports the following experiments:

By default, the coreutils and sudo-rs experiments are enabled because they're the most complete, stable experiments. Others can be toggled using command line arguments shown below.

Installation

Warning

oxidizr is an experimental tool to help developers and tinkerers play with relatively new alternatives to core system utilities. It may cause a loss of data, or prevent your system from booting, so use with caution!

You can install oxidizr by downloading binaries from the Github releases. Releases are currently published for amd64 and aarch64.

The following will establish the latest released version, download the archive and extract the oxidizr binary to /usr/bin/oxidizr.

# Get the latest release
latest="$(curl -s "https://api.github.com/repos/jnsgruk/oxidizr/releases/latest" | jq -r '.name')"
# Download and install to /usr/bin/oxidizr
curl -sL "https://github.com/jnsgruk/oxidizr/releases/download/$latest/oxidizr_Linux_$(uname -m).tar.gz" | sudo tar -xvzf - -C /usr/bin oxidizr

Or you can build and install oxidizr using cargo:

cargo install --git https://github.com/jnsgruk/oxidizr

Usage

The program must be run as root and supports two main commands:

  • enable: Activates selected experiments
  • disable: Deactivates selected experiments
A command-line utility to install modern Rust-based replacements of essential packages such as coreutils, findutils, diffutils and sudo and make them the default on an Ubuntu system.

Usage: oxidizr [OPTIONS] <COMMAND>

Commands:
  enable   Enable experiments with oxidizr
  disable  Disable any previous experiments enabled with oxidizr
  help     Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose...
          Increase logging verbosity

  -q, --quiet...
          Decrease logging verbosity

  -y, --yes
          Skip confirmation prompts

  -a, --all
          Enable/disable all known experiments

  -e, --experiments <EXPERIMENTS>...
          Select experiments to enable or disable

          [default: coreutils sudo-rs]

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

Example

# Enable all experiments
sudo oxidizr enable --all
# Enable just coreutils and findutils experiments
sudo oxidizr enable --experiments coreutils findutils
# Enable just coreutils experiment without prompting with debug logging enabled
sudo oxidizr enable --experiments coreutils --yes -v

Building oxidizr

# Build with cargo
cargo build

# Run tests
cargo test -- --show-output

# Lint / format
cargo clippy
cargo fmt

About

πŸ¦€ Install modern Rust-based replacements of packages such as coreutils, findutils, diffutils and sudo, making them the default on an Ubuntu system πŸ¦€

Topics

Resources

License

Stars

Watchers

Forks