git.iko.soy/kchnrave.github.io
on master help sign in
42 lines 1.2 kB history raw
1module Stars exposing (run)
3import BackendTask exposing (BackendTask)
4import BackendTask.Http
5import Cli.Option as Option
6import Cli.OptionsParser as OptionsParser
7import Cli.Program as Program
8import Json.Decode as Decode
9import Pages.Script as Script exposing (Script)
12run : Script
13run =
14 Script.withCliOptions program
15 (\{ username, repo } ->
16 BackendTask.Http.getJson
17 ("https://api.github.com/repos/dillonkearns/" ++ repo)
18 (Decode.field "stargazers_count" Decode.int)
19 |> BackendTask.allowFatal
20 |> BackendTask.andThen
21 (\stars ->
22 Script.log (String.fromInt stars)
23 )
24 )
27type alias CliOptions =
28 { username : String
29 , repo : String
30 }
33program : Program.Config CliOptions
34program =
35 Program.config
36 |> Program.add
37 (OptionsParser.build CliOptions
38 |> OptionsParser.with
39 (Option.optionalKeywordArg "username" |> Option.withDefault "dillonkearns")
40 |> OptionsParser.with
41 (Option.optionalKeywordArg "repo" |> Option.withDefault "elm-pages")
42 )