Skip to content

Zolmok/biosphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Biosphere

Biosphere is a simple CLI tool to bootstrap development environments across multiple operating systems.

It’s primarily a learning project: I’m teaching myself Rust by converting old scripts into something more structured and robust. You can think of it as a (very minimal) alternative to Ansible or Brewfiles — but JSON-based and written entirely in Rust.

Given a JSON config file that specifies which apps to install per OS/distro, Biosphere will:

  • Detect your OS (and Linux distro, if applicable)
  • Look up relevant commands and apps
  • Run them (or simulate with `–dry-run`)

Quick Start

$ git clone [email protected]:Zolmok/biosphere.git
$ cd biosphere
$ cargo install --path .

Running It

To install apps based on your configuration file:

$ biosphere --config /path/to/apps.json

To preview what would be executed (no changes made):

$ biosphere --config /path/to/apps.json --dry-run

Configuration Format

Your configuration file (`apps.json`) should look like this:

{
  "operating_systems": [
    {
      "name": "linux",
      "versions": [
        {
          "types": ["pop", "ubuntu"],
          "commands": [
            {
              "meta": {
                "command": "sudo",
                "args": ["apt-get", "update"]
              }
            },
            {
              "meta": {
                "command": "sudo",
                "args": ["apt-get", "install", "-y"],
                "apps": [
                  "clamav",
                  "curl",
                  "emacs"
                  // ...
                ]
              }
            }
          ]
        }
      ]
    }
  ]
}

Each command entry has:

  • a `command` (e.g. `sudo`)
  • optional `args` (e.g. `[“apt-get”, “install”, “-y”]`)
  • optional `apps`: a list of packages appended to `args` for each app not already installed

Contributions

This is a learning tool — but if you find it helpful, have suggestions, or want to add support for more distros (macOS, Arch, Windows WSL, etc.), PRs are welcome!

About

Bootstrap a new system with all of your favorite apps and settings

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages