Skip to content

easbarba/onur

Repository files navigation

Onur

Easily manage multiple FLOSS repositories.

cpp | c | dotnet | go | python | rust | php | java | ruby

Usage

# grab all projects
onur grab 

# grab only the c projects
onur grab c 

# list the cpp configuration file
onur config cpp 

# list topics of haskell
onur config haskell.

# list only the projects on misc topic of lisp
onur config lisp.misc 

# add a new configuration with theses entries in the topic misc of c
onur config c.misc cli11 https://github.com/cliutils/cli11 main 

# back up these projects as tar.gz
onur backup ecmascript.nuxt lua.awesomewm misc.gitignore 

onur --help

Configuration file

onur consumes configuration in the following manners:

By default it looks for configuration files at $XDG_CONFIG/onur or in the directory set in the $ONUR_CONFIG_HOME environment variable.

{
  "main": [
    {
      "name": "awesomewm",
      "url": "https://github.com/awesomeWM/awesome"
    },
    {
      "name": "nuxt",
      "branch": "main",
      "url": "https://github.com/nuxt/framework"
    }
  ],
  "misc": [
    {
      "name": "awesomewm",
      "url": "https://github.com/awesomeWM/awesome"
    },
    {
      "name": "nuxt",
      "branch": "main",
      "url": "https://github.com/nuxt/framework"
    }
  ],
  "tools/gnu": [
    {
      "name": "inetutils",
      "url": "https://git.savannah.gnu.org/git/inetutils.git"
    },
    {
      "name": "gnu-wget",
      "url": "https://git.savannah.gnu.org/git/wget.git"
    }
  ]
}

More examples of configuration files are at examples.

Settings

settings.toml

[git]
single-branch = true
quiet = true
depth = 1

Installation

onur requires a c++ 23 compiler and meson or cmake: make all.

Development

In development it may suit you better running the tests in a isolated environment with containers, that can be done so:

docker run --rm -it $(docker build -qf Containerfile.run)

or:

podman build https://gitlab.com/easbarba/onur/-/raw/main/Containerfile.dev --tag onur:latest
podman run --rm -it onur:latest 

GNU Guix

In a system with GNU Guix binary installed, its even easier to grab all dependencies: guix shell.

Onur CLI

TODO

Check the TODO.md for more information.

LICENSE

GNU GENERAL PUBLIC LICENSE Version 3