diff --git a/src/adormit/adormit.go b/src/adormit/adormit.go index 5224658d68a96d15a184c99a07e53132283800ce..352adc0690d9d978cbfc7676ae8cee9e579842d5 100644 --- a/src/adormit/adormit.go +++ b/src/adormit/adormit.go @@ -17,49 +17,49 @@ type Alarm struct { id string } +func (alarm Alarm) SetAlarm() { + var insert []map[string]dbus.Variant + a := make(map[string]dbus.Variant) + a["name"] = dbus.MakeVariant(alarm.name) + a["active"] = dbus.MakeVariant(alarm.active) + existing_alarms := GetGnomeAlarms() + insert = append(insert, a) + for _, v := range existing_alarms { + insert = append(insert, v) + } + // insert = append(insert, get_v().([]interface{})[0].(map[string]interface{})) + sig, _ := dbus.ParseSignature("aa{sv}") + existing_alarms_var := dbus.MakeVariantWithSignature(insert, sig) + fmt.Println(existing_alarms_var) +} + type Timer struct { - name string + Name string start time.Time - duration time.Duration + Duration time.Duration end time.Time - command string - args []string + Command string + Args []string } func (t Timer) Countdown() { - timer1 := time.NewTimer(t.duration) + timer1 := time.NewTimer(t.Duration) <-timer1.C fmt.Println("Timer completed") t.end = time.Now() - cmd := exec.Command(t.command, t.args...) + cmd := exec.Command(t.Command, t.Args...) cmd.Run() } func DemoTimer() { args := []string{"-i", "clock", "Timer over!", "adormit"} - t := Timer{duration: time.Second * 1, command: "notify-send", args: args} + t := Timer{Duration: time.Second * 1, Command: "notify-send", Args: args} t.Countdown() } func MakeAlarm() { alarm := Alarm{name: "my-alarm", active: true} - SetAlarm(alarm) -} - -func SetAlarm(alarm Alarm) { - var insert []map[string]dbus.Variant - a := make(map[string]dbus.Variant) - a["name"] = dbus.MakeVariant(alarm.name) - a["active"] = dbus.MakeVariant(alarm.active) - existing_alarms := GetGnomeAlarms() - insert = append(insert, a) - for _, v := range existing_alarms { - insert = append(insert, v) - } - // insert = append(insert, get_v().([]interface{})[0].(map[string]interface{})) - sig, _ := dbus.ParseSignature("aa{sv}") - existing_alarms_var := dbus.MakeVariantWithSignature(insert, sig) - fmt.Println(existing_alarms_var) + alarm.SetAlarm() } func debug(ty interface{}) { @@ -71,19 +71,18 @@ func debug(ty interface{}) { } } -func get_v() interface{} { - settings := glib.SettingsNew("org.gnome.clocks") - alarms := settings.GetValue("alarms") - sig, _ := dbus.ParseSignature("aa{sv}") - v, _ := dbus.ParseVariant(alarms.String(), sig) - return v.Value() -} +// func get_v() interface{} { +// settings := glib.SettingsNew("org.gnome.clocks") +// alarms := settings.GetValue("alarms") +// sig, _ := dbus.ParseSignature("aa{sv}") +// v, _ := dbus.ParseVariant(alarms.String(), sig) +// return v.Value() +// } func GetGnomeAlarms() []map[string]dbus.Variant { //gsettings get org.gnome.clocks alarms settings := glib.SettingsNew("org.gnome.clocks") alarms := settings.GetValue("alarms") - // debug(settings) sig, _ := dbus.ParseSignature("aa{sv}") v, _ := dbus.ParseVariant(alarms.String(), sig) val := v.Value() diff --git a/src/cmd/root.go b/src/cmd/root.go index 3c035d4109d2b5a952e0689b256ad328b7923737..76c62213ed2cefc4bc575162c17b6ebca7d9157a 100644 --- a/src/cmd/root.go +++ b/src/cmd/root.go @@ -12,7 +12,7 @@ var RootCmd = &cobra.Command{ // cmd.Help() adormit.GetGnomeAlarms() adormit.MakeAlarm() - adormit.DemoTimer() + // adormit.DemoTimer() }, } diff --git a/src/cmd/timer.go b/src/cmd/timer.go new file mode 100644 index 0000000000000000000000000000000000000000..a03e25827757f875618177729c49e0d149e99183 --- /dev/null +++ b/src/cmd/timer.go @@ -0,0 +1,25 @@ +package cmd + +import ( + "adormit" + "github.com/spf13/cobra" + "time" +) + +var Length int + +func init() { + timerCmd.PersistentFlags().IntVarP(&Length, "length", "l", 60, "length of time in seconds") + RootCmd.AddCommand(timerCmd) +} + +var timerCmd = &cobra.Command{ + Use: "timer", + Short: "run a simple timer", + Long: `runs a timer optionally with `, + Run: func(cmd *cobra.Command, args []string) { + alarmArgs := []string{"-i", "clock", "Timer over!", "adormit"} + t := adormit.Timer{Duration: time.Second * time.Duration(Length), Command: "notify-send", Args: alarmArgs} + t.Countdown() + }, +}