Changeset 3 in code for trunk/main.go
- Timestamp:
- May 4, 2025, 5:13:05 PM (5 weeks ago)
- 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 $2 1 package main 3 2 4 import ( 5 "fmt" 6 "io" 7 "log" 8 "net/http" 3 import "mahou-no-mori.yakumo.dev/yuuka/cmd" 9 4 10 "github.com/integrii/flaggy"11 )12 var (13 format string = "AT"14 region string15 )16 5 func 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(®ion, "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() 43 7 } 44 func ShowForecast(region string, format string) {45 query := "https://wttr.in/" + region + "?" + format46 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" + "?" + format55 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.