package cmd import ( "encoding/json" "fmt" "os" "github.com/pkg/browser" "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) } func now(cmd *cobra.Command, args []string) { helper := forecastHelper(cmd, args) f := helper.f if helper.isWeb { url := fmt.Sprintf("https://www.yr.no/en/forecast/hourly-table/%.4f,%.4f/?i=0", f.Coordinates.Latitude, f.Coordinates.Longitude) err := browser.OpenURL(url) if err != nil { cobra.CheckErr(err) } os.Exit(0) } n := f.Forecast[0] if helper.isJson { j, err := json.MarshalIndent(f, "", " ") cobra.CheckErr(err) fmt.Printf("%s", j) return } itemTime := n.Time.Local() if helper.isUTC { itemTime = n.Time } fmt.Printf( `%s %s: Temperature: %.1f °C Rain: %.1f mm Wind: %.1f m/s from %s `, n.Location, itemTime.Format("Monday 2 Jan 15:04"), n.Temperature, n.Percipitation, n.Wind.Speed, n.Wind.DirectionToString(), ) }