Skip to main content

Viliam's Universal Requirements Format

Project description

VURF

Viliam's Universal Requirements Format

What it is

VURF is a format, parser, and CLI for saving packages into Python-ish looking file.

Example packages.vurf

with pip:
  vurf
  black
  if at_work:
    ql-cq
    ql-orange
with brew:
  nnn  # terminal file manager

Usage

!TODO

Grammar

VURF has grammar and LALR(1) parser implemented in Lark. It aims to look like Python code as much as possible.

Keywords

  • with [section] - specifies "section" of requirements file. Different sections usually have different installers.
  • if [condition]: - conditions for including packages. See Conditions sections.
  • elif [condition]:
  • else:
  • ... - ellipsis - placeholder for empty section.

Packages

  • are saved as [name] # [comment]
  • name can be almost any valid package name (cannot start with "." or contain tabs or newline characters)
  • names containing spaces must be quoted. E.g. 'multi word package name'
  • comments are optional

Config

Note: VURF will automatically create config file on the first run.

Config file format

# Where packages file is saved
packages_location = "/Users/viliam/packages.vurf"
# Name of the default section
default_section = "brew"

# Sections can be though of as installers for different packages
# Value of the section is the command for installing packages with `vurf install`
[sections]
brew = "brew install"
cask = "brew install --cask"
python = "pip install --quiet --user"

# Parameters are constants that can be accessed from conditionals
[parameters]
hostname = "mac"
primary_computer = true
fs = "apfs"

CLI

$ vurf
Usage: vurf [OPTIONS] COMMAND [ARGS]...

Options:
  -q, --quiet  Don't produce unnecessary output.
  --version    Show the version and exit.
  --help       Show this message and exit.

Commands:
  add       Add package(s).
  config    Edit config file.
  default   Print default section.
  edit      Edit packages file.
  format    Format packages file.
  has       Exit with indication if package is in packages.
  install   Install packages.
  packages  Print list of packages.
  print     Print contents of packages file.
  remove    Remove package(s).
  sections  Print list of sections.

Conditions

!TODO

Hooks

!TODO

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

vurf-0.10.0a2.tar.gz (32.9 kB view hashes)

Uploaded Source

Built Distribution

vurf-0.10.0a2-py3-none-any.whl (33.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