Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
30 Days Of Javascript | 36,456 | 2 days ago | 1 | January 25, 2022 | 253 | JavaScript | ||||
30 days of JavaScript programming challenge is a step-by-step guide to learn JavaScript programming language in 30 days. This challenge may take more than 100 days, please just follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw | ||||||||||
Httpie | 27,856 | 1,645 | 42 | 17 days ago | 55 | May 06, 2022 | 146 | bsd-3-clause | Python | |
🥧 HTTPie for Terminal — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. | ||||||||||
Cli | 20,252 | 3,070 | 3,594 | 21 hours ago | 137 | September 11, 2022 | 39 | mit | Go | |
A simple, fast, and fun package for building command line apps in Go | ||||||||||
Fx | 16,283 | 11 | 16 | a month ago | 47 | September 15, 2020 | 22 | mit | Go | |
Terminal JSON viewer | ||||||||||
Yq | 8,751 | 43 | a day ago | 10 | February 06, 2020 | 76 | mit | Go | ||
yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor | ||||||||||
Http Prompt | 8,717 | 7 | 1 | 2 months ago | 24 | March 05, 2021 | 53 | mit | Python | |
An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more. https://twitter.com/httpie | ||||||||||
Fq | 8,344 | 17 hours ago | 96 | August 25, 2022 | 43 | other | Go | |||
jq for binary formats - tool, language and decoders for working with binary and text formats | ||||||||||
Miller | 7,790 | 4 days ago | 64 | March 31, 2022 | 93 | other | Go | |||
Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON | ||||||||||
Structured Text Tools | 6,672 | 2 months ago | 15 | |||||||
A list of command line tools for manipulating structured text data | ||||||||||
Visidata | 6,609 | 5 | 5 | 21 hours ago | 48 | December 16, 2021 | 87 | gpl-3.0 | Python | |
A terminal spreadsheet multitool for discovering and arranging data |
Loads configuration from many sources:
It also provides a simple CLI commands handling system.
package flag_test
import (
"log"
"github.com/davecgh/go-spew/spew"
"github.com/traefik/paerser/flag"
)
type ConfigExample struct {
Foo string
Bar Bar
Great bool
}
type Bar struct {
Sub *Sub
List []string
}
type Sub struct {
Name string
Value int
}
func ExampleDecode() {
args := []string{
"--foo=aaa",
"--great=true",
"--bar.list=AAA,BBB",
"--bar.sub.name=bbb",
"--bar.sub.value=6",
}
config := ConfigExample{}
err := flag.Decode(args, &config)
if err != nil {
log.Fatal(err)
}
spew.Config = spew.ConfigState{
Indent: "\t",
DisablePointerAddresses: true,
}
spew.Dump(config)
// Output:
// (flag_test.ConfigExample) {
// Foo: (string) (len=3) "aaa",
// Bar: (flag_test.Bar) {
// Sub: (*flag_test.Sub)({
// Name: (string) (len=3) "bbb",
// Value: (int) 6
// }),
// List: ([]string) (len=2 cap=2) {
// (string) (len=3) "AAA",
// (string) (len=3) "BBB"
// }
// },
// Great: (bool) true
// }
}
package file_test
import (
"fmt"
"log"
"os"
"github.com/davecgh/go-spew/spew"
"github.com/traefik/paerser/file"
)
type ConfigExample struct {
Foo string
Bar Bar
Great bool
}
type Bar struct {
Sub *Sub
List []string
}
type Sub struct {
Name string
Value int
}
func ExampleDecode() {
tempFile, err := os.CreateTemp("", "paeser-*.yml")
if err != nil {
log.Fatal(err)
}
defer func() { _ = os.RemoveAll(tempFile.Name()) }()
data := `
foo: aaa
bar:
sub:
name: bbb
value: 6
list:
- AAA
- BBB
great: true
`
_, err = fmt.Fprint(tempFile, data)
if err != nil {
log.Fatal(err)
}
// Read configuration file
filePath := tempFile.Name()
config := ConfigExample{}
err = file.Decode(filePath, &config)
if err != nil {
log.Fatal(err)
}
spew.Config = spew.ConfigState{
Indent: "\t",
DisablePointerAddresses: true,
}
spew.Dump(config)
// Output:
// (file_test.ConfigExample) {
// Foo: (string) (len=3) "aaa",
// Bar: (file_test.Bar) {
// Sub: (*file_test.Sub)({
// Name: (string) (len=3) "bbb",
// Value: (int) 6
// }),
// List: ([]string) (len=2 cap=2) {
// (string) (len=3) "AAA",
// (string) (len=3) "BBB"
// }
// },
// Great: (bool) true
// }
}
package env_test
import (
"log"
"os"
"github.com/davecgh/go-spew/spew"
"github.com/traefik/paerser/env"
)
type ConfigExample struct {
Foo string
Bar Bar
Great bool
}
type Bar struct {
Sub *Sub
List []string
}
type Sub struct {
Name string
Value int
}
func ExampleDecode() {
_ = os.Setenv("MYAPP_FOO", "aaa")
_ = os.Setenv("MYAPP_GREAT", "true")
_ = os.Setenv("MYAPP_BAR_LIST", "AAA,BBB")
_ = os.Setenv("MYAPP_BAR_SUB_NAME", "bbb")
_ = os.Setenv("MYAPP_BAR_SUB_VALUE", "6")
config := ConfigExample{}
err := env.Decode(os.Environ(), "MYAPP_", &config)
if err != nil {
log.Fatal(err)
}
spew.Config = spew.ConfigState{
Indent: "\t",
DisablePointerAddresses: true,
}
spew.Dump(config)
// Output:
// (env_test.ConfigExample) {
// Foo: (string) (len=3) "aaa",
// Bar: (env_test.Bar) {
// Sub: (*env_test.Sub)({
// Name: (string) (len=3) "bbb",
// Value: (int) 6
// }),
// List: ([]string) (len=2 cap=2) {
// (string) (len=3) "AAA",
// (string) (len=3) "BBB"
// }
// },
// Great: (bool) true
// }
}
TODO