fixed wait time function
This commit is contained in:
parent
fb8849322d
commit
1829422562
30
main.go
30
main.go
@ -6,6 +6,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
|
"math"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path"
|
"path"
|
||||||
@ -116,24 +117,23 @@ func getTime(timeString string) (int, int) {
|
|||||||
return int(hr), int(min)
|
return int(hr), int(min)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getNextWait(config sunsetConfig) (int, int) {
|
func getNextWait(config sunsetConfig) time.Duration {
|
||||||
index := nextIndex(config)
|
index := nextIndex(config)
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
nextHr, nextMin := getTime(config.Files[index].Time)
|
nextHr, nextMin := getTime(config.Files[index].Time)
|
||||||
|
|
||||||
var diffHr int
|
// Today at the time
|
||||||
var diffMin int
|
nextTime := time.Date(now.Year(), now.Month(), now.Day(), nextHr, nextMin, 0, 0, now.Location())
|
||||||
|
|
||||||
// FIXME still not working
|
until := nextTime.Sub(now)
|
||||||
if now.Hour() >= nextHr && now.Minute() >= nextMin {
|
|
||||||
diffHr = 24 - (now.Hour() - nextHr)
|
if math.Floor(until.Minutes()) > 0 {
|
||||||
diffMin = 60 - (now.Minute() - nextMin)
|
return until
|
||||||
} else {
|
|
||||||
diffHr = nextHr - now.Hour()
|
|
||||||
diffMin = nextMin - now.Minute()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return diffHr, diffMin
|
// Next day the the time
|
||||||
|
nextTime = nextTime.AddDate(0, 0, 1)
|
||||||
|
return nextTime.Sub(now)
|
||||||
}
|
}
|
||||||
|
|
||||||
func currentImage(configPath string, config sunsetConfig) string {
|
func currentImage(configPath string, config sunsetConfig) string {
|
||||||
@ -149,8 +149,8 @@ func block(configPath string, config sunsetConfig, command string) {
|
|||||||
image := currentImage(configPath, config)
|
image := currentImage(configPath, config)
|
||||||
go runCommand(command, image)
|
go runCommand(command, image)
|
||||||
for {
|
for {
|
||||||
nextHr, nextMin := getNextWait(config)
|
until := getNextWait(config)
|
||||||
timer := time.NewTimer((time.Duration(nextHr) * time.Hour) + (time.Duration(nextMin) * time.Minute))
|
timer := time.NewTimer(until)
|
||||||
<-timer.C
|
<-timer.C
|
||||||
log.Printf("Running command: %s\n", command)
|
log.Printf("Running command: %s\n", command)
|
||||||
image := currentImage(configPath, config)
|
image := currentImage(configPath, config)
|
||||||
@ -179,8 +179,8 @@ func main() {
|
|||||||
if *printNextTime {
|
if *printNextTime {
|
||||||
fmt.Printf("%s", getNextTime(conf))
|
fmt.Printf("%s", getNextTime(conf))
|
||||||
} else if *printNextWait {
|
} else if *printNextWait {
|
||||||
hr, min := getNextWait(conf)
|
unitl := getNextWait(conf)
|
||||||
fmt.Printf("%dh%dm", hr, min)
|
fmt.Printf("%s", unitl)
|
||||||
|
|
||||||
} else if *blockFlag {
|
} else if *blockFlag {
|
||||||
if *blockCommand == "" {
|
if *blockCommand == "" {
|
||||||
|
Loading…
Reference in New Issue
Block a user