aboutsummaryrefslogtreecommitdiff
path: root/aoc2023/build/packages/glint/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'aoc2023/build/packages/glint/README.md')
-rw-r--r--aoc2023/build/packages/glint/README.md104
1 files changed, 0 insertions, 104 deletions
diff --git a/aoc2023/build/packages/glint/README.md b/aoc2023/build/packages/glint/README.md
deleted file mode 100644
index d6d5821..0000000
--- a/aoc2023/build/packages/glint/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# glint
-
-[![Hex Package](https://img.shields.io/hexpm/v/glint?color=ffaff3&label=%F0%9F%93%A6)](https://hex.pm/packages/glint)
-[![Hex.pm](https://img.shields.io/hexpm/dt/glint?color=ffaff3)](https://hex.pm/packages/glint)
-[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3?label=%F0%9F%93%9A)](https://hexdocs.pm/glint/)
-[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/tanklesxl/glint/main)](https://github.com/tanklesxl/glint/actions)
-
-Gleam command line argument parsing with basic flag support.
-
-## Installation
-
-To install from hex:
-
-```sh
-gleam add glint
-```
-
-## Usage
-
-### Glint's Core
-
-`glint` is conceptually quite small, your general flow will be:
-
-1. create a new glint instance with `glint.new`
-1. configure it with `glint.with_pretty_help` and other configuration functions
-1. add commands with `glint.add`
- 1. create a new command with `glint.cmd`
- 1. assign that command any flags required
- 1. assign the command a custom description
-1. run your cli with `glnt.run`, run with a function to handle command output with `glint.run_and_handle`
-
-### Mini Example
-
-You can import `glint` as a dependency and use it to build simple command-line applications like the following simplified version of the [the hello world example](https://github.com/TanklesXL/glint/tree/main/examples/hello/README.md)
-
-```gleam
-// stdlib imports
-import gleam/io
-import gleam/list
-import gleam/result
-import gleam/string.{uppercase}
-// external dep imports
-import snag
-// glint imports
-import glint
-import glint/flag
-// erlang-specific imports
-
-@target(erlang)
-import gleam/erlang.{start_arguments}
-
-/// the key for the caps flag
-const caps = "caps"
-
-/// a boolean flag with default False to control message capitalization.
-///
-fn caps_flag() -> flag.FlagBuilder(Bool) {
- flag.bool()
- |> flag.default(False)
- |> flag.description("Capitalize the provided name")
-}
-
-/// the command function that will be executed
-///
-fn hello(input: glint.CommandInput) -> Nil {
- let assert Ok(caps) = flag.get_bool(from: input.flags, for: caps)
-
- let name =
- case input.args {
- [] -> "Joe"
- [name,..] -> name
- }
-
- let msg = "Hello, " <> name <> "!"
-
-
- case caps {
- True -> uppercase(msg)
- False -> msg
- }
- |> io.println
-}
-
-pub fn main() {
- // create a new glint instance
- glint.new()
- // with an app name of "hello", this is used when printing help text
- |> glint.with_name("hello")
- // with pretty help enabled, using the built-in colours
- |> glint.with_pretty_help(glint.default_pretty_help())
- // with a root command that executes the `hello` function
- |> glint.add(
- // add the command to the root
- at: [],
- // create the command, add any flags
- do: glint.command(hello)
- // with flag `caps`
- |> glint.flag(caps, caps_flag())
- // with a short description
- |> glint.description("Prints Hello, <NAME>!"),
- )
- |> glint.run(start_arguments())
-}
-```