Skip to main content

A simple ricing tool for Linux systems.

Project description

Niagara

Niagara is a ricing tool made for Linux systems. It aims to be a universal tool that can be used on multiple distributions, as it does not rely on a singular package manager. Niagara manages configs by taking a JSON file that contains some fields such as packages, dotfile, wallpaper, etc.

How does Niagara handle packages?

Niagara has a list of packages that you can place inside the configuration file, and then it goes and checks it against the corresponding package for your linux distribution. A good example would be the following:

{
    "name": "doas",
    "arch": "opendoas",
    "void": "opendoas",
    "fedora": "opendoas",
    "gentoo": "app-admin/doas"
}

This allows us to support multiple distributions, whilst making it a write once, run anywhere style of program.

Features

  • packages
  • config
    • wallpaper
    • dotfile
    • scripts
    • commands
      • available to clone and use a git repository as the basis for commands
      • option to run the command in a specified directory
  • xinitrc generation

Example configuration

{
  "packages": [
    "sway",
    "feh",
    "picom",
    "i3",
    "kitty"
  ],
  "config": [
    {
      "option": "wallpaper",
      "val": "https://github.com/kavulox/dotfiles/raw/master/wallpapers/forest.jpg"
    },
    {
      "option": "dotfile",
      "val": [
        "https://github.com/kavulox/nvim",
        "https://github.com/kavulox/picom"
      ]
    },
    {
      "option": "scripts",
      "val": [
        {
          "method": "curl",
          "url": "https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"
        }
      ]
    }
  ],
  "source": [
    {
      "link": "https://git.suckless.org/dwm",
      "cmds": [
        {
          "dir": "dwm",
          "cmd": "sudo make clean install"
        }
      ]
    }
  ],
  "xinitrc": [
    "picom -b",
    "exec dwm"
  ]
}

Contributing

New contributors should submit a PR with a short description of their changes.

ArtixLabs

Join our discord server at https://discord.gg/ajNswSyf6q

Join our Matrix space at https://matrix.to/#/#artixlabs:halogen.city

Todo

  • Get more packages.
    • Make packages support multiple package managers.
  • Split deps.py into multiple files.
  • Add documentation.
  • Add checks to see if a specified package is not natively available for a distribution, then to refer to a custom build option.

Author

Niagara was written by kavulox

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

niagara-0.0.1.2.tar.gz (19.8 kB view hashes)

Uploaded Source

Built Distribution

niagara-0.0.1.2-py3-none-any.whl (19.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page