add set-white subcommand
This commit is contained in:
		
							
								
								
									
										45
									
								
								cmd/lume.go
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								cmd/lume.go
									
									
									
									
									
								
							@@ -35,6 +35,7 @@ func main() {
 | 
				
			|||||||
		selector *string
 | 
							selector *string
 | 
				
			||||||
		r        *lifx.Response
 | 
							r        *lifx.Response
 | 
				
			||||||
		err      error
 | 
							err      error
 | 
				
			||||||
 | 
							color    lifx.HSBKColor
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	accessToken := os.Getenv("LIFX_ACCESS_TOKEN")
 | 
						accessToken := os.Getenv("LIFX_ACCESS_TOKEN")
 | 
				
			||||||
@@ -53,6 +54,13 @@ func main() {
 | 
				
			|||||||
	setStateCommand.String("infrared", "", "Set the infrared brightness")
 | 
						setStateCommand.String("infrared", "", "Set the infrared brightness")
 | 
				
			||||||
	setStateCommand.Bool("fast", false, "Execute fast (no response)")
 | 
						setStateCommand.Bool("fast", false, "Execute fast (no response)")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						setWhiteCommand := flag.NewFlagSet("set-white", flag.ExitOnError)
 | 
				
			||||||
 | 
						setWhiteCommand.String("name", "", "Set the kelvin by name")
 | 
				
			||||||
 | 
						setWhiteCommand.String("kelvin", "", "Set the kelvin by value")
 | 
				
			||||||
 | 
						setWhiteCommand.String("brightness", "", "Set the brightness")
 | 
				
			||||||
 | 
						setWhiteCommand.String("duration", "", "Set the duration")
 | 
				
			||||||
 | 
						setWhiteCommand.Bool("fast", false, "Execute fast (no response)")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	flag.Parse()
 | 
						flag.Parse()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	command = flag.Arg(0)
 | 
						command = flag.Arg(0)
 | 
				
			||||||
@@ -98,6 +106,43 @@ func main() {
 | 
				
			|||||||
			state.Fast, err = strconv.ParseBool(fast)
 | 
								state.Fast, err = strconv.ParseBool(fast)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							r, err = c.SetState(*selector, state)
 | 
				
			||||||
 | 
						case "set-white":
 | 
				
			||||||
 | 
							setWhiteCommand.Parse(os.Args[4:])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							fs := Flags{setWhiteCommand}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							name := fs.String("name")
 | 
				
			||||||
 | 
							kelvin := fs.String("kelvin")
 | 
				
			||||||
 | 
							brightness := fs.String("brightness")
 | 
				
			||||||
 | 
							duration := fs.String("duration")
 | 
				
			||||||
 | 
							fast := fs.String("fast")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							state := lifx.State{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if name != "" {
 | 
				
			||||||
 | 
								color, err := lifx.NewWhiteString(name)
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									fmt.Println(err)
 | 
				
			||||||
 | 
									os.Exit(1)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								state.Color = color
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if kelvin != "" {
 | 
				
			||||||
 | 
								k, _ := strconv.ParseInt(kelvin, 10, 16)
 | 
				
			||||||
 | 
								color, err = lifx.NewWhite(int16(k))
 | 
				
			||||||
 | 
								state.Color = color
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if brightness != "" {
 | 
				
			||||||
 | 
								state.Brightness, err = strconv.ParseFloat(brightness, 64)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if duration != "" {
 | 
				
			||||||
 | 
								state.Duration, err = strconv.ParseFloat(duration, 64)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if fast != "" {
 | 
				
			||||||
 | 
								state.Fast, err = strconv.ParseBool(fast)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		r, err = c.SetState(*selector, state)
 | 
							r, err = c.SetState(*selector, state)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user