[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



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

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


Reply to: