[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#954354: ITP: golang-github-audriusbutkevicius-recli -- Reflection based CLI (command line interface) generator for Golang



Hi,

You can go ahead and package it yourself.

Thanks a lot!

Cheers

On Mon, Nov 08, 2021 at 08:39:05AM +0100, Aloïs Micard wrote:
Hello there!

I'm currently working on getting the next version of Syncthing on the archive
and I would need to package this library.

A quick lookup on Salsa show that a repository exists but nothing has been pushed.
Have you done the packaging? Do you need a sponsor?

Or should I done it by myself?

Thanks !

Cheers,

On Fri, 20 Mar 2020 18:40:00 +0100 "Quentin Hibon" <qh.public@yahoo.com> wrote:
Package: wnpp
Severity: wishlist
Owner: hiq <hiq@hiq-lptp-deb.home>

* Package name    : golang-github-audriusbutkevicius-recli
 Version         : 0.0.5-1
 Upstream Author : Audrius Butkevicius
* URL             : https://github.com/AudriusButkevicius/recli
* License         : MPL-2.0
 Programming Lang: Go
 Description     : Reflection based CLI (command line interface) generator for Golang

recli - Reflection based CLI (command line interface) generator for
Golang GoDoc (https://godoc.org/github.com/AudriusButkevicius/recli)
.
For a given struct, builds a set of urfave/cli
(https://github.com/urfave/cli) commands which allows you to modify it
from the command line.
.
Useful for generating command line clients for your application
configuration that is stored in a Go struct.  Features•
Nested struct support• Enum/Custom complex type support via
MarshalText/UnmarshalText• Slice support, including complex types•
Slice indexing by struct field• Map support• Default primitive value
support when adding items to slicesKnown limitations• Adding new
struct to a slice only allows setting primitive fields (use add-json
as a work-around)• Only primitive types supported for map keys and
values• No defaults for mapsExamples Example config
.
``go type Config struct {
    Address          stringusage:"Address on which to listen"`
    // Description printed in -help AuthMode         AuthMode
    // Enum support ThreadingOptions ThreadingOptions
    // Nested struct support Backends         []Backend
    // Slice support EnvVars          map[string]string
    // Map support
}
.
type Backend struct {
    Hostname         string recli:"id"         // Constructs commands
    for indexing into the array based on the value of this field Port
    int    default:"2019"     // Default support BackoffIntervals []int
    default:"10,20"    // Slice default support IPAddressCached  net.IP
    recli:"-" json:"-" // Skips the field
}
.
type ThreadingOptions struct {
    MaxThreads int
} ```
.
Sample input data json {
   "Address":"http://website.com";, "AuthMode":"static",
   "ThreadingOptions":{
      "MaxThreads":10
   }, "Backends":[
      {
         "Hostname":"backend1.com", "Port":1010
      }, {
         "Hostname":"backend2.com", "Port":2020
      }

--
Aloïs Micard <creekorful@debian.org>

GPG: DA4A A436 9BFA E299 67CD E85B F733 E871 0859 FCD2



Reply to: