package cmd import ( "fmt" "os" "git.sr.ht/~timharek/yr/cmd/flags" "github.com/spf13/cobra" ) var nowCmd = &cobra.Command{ Use: "now ", Aliases: []string{"current", "n"}, Short: "Get current forecasted weather", Args: cobra.MaximumNArgs(1), Run: now, } func init() { rootCmd.AddCommand(nowCmd) rootCmd.PersistentFlags().Bool(flags.ONE_LINE, false, "Output in a single line") } func now(cmd *cobra.Command, args []string) { helper := forecastHelper(cmd, args) f := helper.f isOneLine, err := cmd.Flags().GetBool(flags.ONE_LINE) cobra.CheckErr(err) if helper.isWeb { openBrowser("https://www.yr.no/en/forecast/hourly-table/%.4f,%.4f?i=0", f) } n := f.Forecast[0] if helper.isJson { outputJson(n) } if !helper.isUTC { n.Time = n.Time.Local() } if isOneLine { fmt.Printf("%s %s: %.1f °C, %.1f mm, %.1f m/s from %s\n", n.Location, n.Time.Format("Monday 2 Jan 15:04"), n.Temperature, n.Percipitation, n.Wind.Speed, n.Wind.DirectionToString(), ) os.Exit(0) } fmt.Printf( `%s %s: Temperature: %.1f °C Rain: %.1f mm Wind: %.1f m/s from %s `, n.Location, n.Time.Format("Monday 2 Jan 15:04"), n.Temperature, n.Percipitation, n.Wind.Speed, n.Wind.DirectionToString(), ) }