Changeset 3 in code for trunk/main.go


Ignore:
Timestamp:
May 4, 2025, 5:13:05 PM (5 weeks ago)
Author:
Izuru Yakumo
Message:

You humans are so full of yourselves. If you want to live a long life, then you should be a little more quiet.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/main.go

    r2 r3  
    1 // $TheSupernovaDuo: yuuka,v 0.1.1 2023/5/29 18:19:14 yakumo_izuru Exp $
    21package main
    32
    4 import (
    5         "fmt"
    6         "io"
    7         "log"
    8         "net/http"
     3import "mahou-no-mori.yakumo.dev/yuuka/cmd"
    94
    10         "github.com/integrii/flaggy"
    11 )
    12 var (
    13         format string = "AT"
    14         region string
    15 )
    165func main() {
    17         flaggy.SetDescription("Yuuka is a wttr.in client")
    18         flaggy.SetVersion(FullVersion())
    19        
    20         forecastCmd := flaggy.NewSubcommand("forecast")
    21         forecastCmd.String(&format, "f", "format", "View options")
    22         forecastCmd.String(&region, "r", "region", "Where to look at")
    23         forecastCmd.Description = "Check the forecast for a specified location"
    24 
    25         flaggy.AttachSubcommand(forecastCmd, 1)
    26 
    27         moonCmd := flaggy.NewSubcommand("moon")
    28         moonCmd.String(&format, "f", "format", "View options")
    29         moonCmd.Description = "Check the Moon's phases"
    30 
    31         flaggy.AttachSubcommand(moonCmd, 1)
    32 
    33         flaggy.ShowHelpOnUnexpectedDisable()
    34         flaggy.Parse()
    35 
    36         if forecastCmd.Used {
    37                 ShowForecast(region, format)
    38         } else if moonCmd.Used {
    39                 ShowMoonPhases(format)
    40         } else {
    41                 flaggy.ShowHelpAndExit("A subcommand is required")
    42         }
     6        cmd.Execute()
    437}
    44 func ShowForecast(region string, format string) {
    45         query := "https://wttr.in/" + region + "?" + format
    46         resp, err := http.Get(query)
    47         sanityCheck(err)
    48         defer resp.Body.Close()
    49         body, err := io.ReadAll(resp.Body)
    50         sanityCheck(err)
    51         fmt.Printf("%s", body)
    52 }
    53 func ShowMoonPhases(format string) {
    54         query := "https://wttr.in/" + "moon" + "?" + format
    55         resp, err := http.Get(query)
    56         sanityCheck(err)
    57         defer resp.Body.Close()
    58         body, err := io.ReadAll(resp.Body)
    59         sanityCheck(err)
    60         fmt.Printf("%s\n", body)
    61 }
    62 func sanityCheck(err error) {
    63         if err != nil {
    64                 log.Fatal(err)
    65         }
    66 }
Note: See TracChangeset for help on using the changeset viewer.