diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/c_go2work.go | 33 | ||||
| -rw-r--r-- | src/u_prints.go | 64 | ||||
| -rw-r--r-- | src/u_utils.go | 17 | 
3 files changed, 73 insertions, 41 deletions
diff --git a/src/c_go2work.go b/src/c_go2work.go index 6cf5ab4..d7f7e41 100644 --- a/src/c_go2work.go +++ b/src/c_go2work.go @@ -39,7 +39,7 @@   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   *   * go2work: src/c_go2work.go - * Tue Mar 29 22:32:07 CEST 2022 + * Wed Mar 30 00:16:51 CEST 2022   * Joe   *   * The main. @@ -64,6 +64,7 @@ const (  )  func main() { +	var curr_t [3]byte  	var dest_t [3]byte  	var tmp int  	log.SetPrefix(PROGNAME + ": ") @@ -82,24 +83,28 @@ func main() {  	case "-v":  		print_version()  		return +	case "-t": +		dest_t = get_test_time() +	default: +		str_dest_t := strings.Split(os.Args[1], ":") +		tmp, _ = strconv.Atoi(str_dest_t[HOURS]) +		dest_t[HOURS] = byte(tmp) +		tmp, _ = strconv.Atoi(str_dest_t[MINS]) +		dest_t[MINS] = byte(tmp) +		dest_t[SECS] = 0  	} -	curr_t := get_time() -	str_dest_t := strings.Split(os.Args[1], ":") -	tmp, _ = strconv.Atoi(str_dest_t[HOURS]) -	dest_t[HOURS] = byte(tmp) -	tmp, _ = strconv.Atoi(str_dest_t[MINS]) -	dest_t[MINS] = byte(tmp) -	dest_t[SECS] = 0 -	// dest_t = [2]int{0, 0} -	ticker := time.NewTicker(1 * time.Second) +	curr_t = get_time() +	print_time_left(curr_t, dest_t) +	ticker := time.NewTicker(500 * time.Millisecond)  	quit := make(chan struct{})  	for {  		select {  		case <- ticker.C:  			curr_t = get_time() -			// print_time(curr_t)  			print_time_left(curr_t, dest_t) -			if curr_t[HOURS] == dest_t[HOURS] && curr_t[MINS] == dest_t[MINS] { +			if curr_t[HOURS] == dest_t[HOURS] && +				curr_t[MINS] == dest_t[MINS] && +				curr_t[SECS] == dest_t[SECS] {  				exec_player(  					true,  					"mpv", @@ -128,3 +133,7 @@ func get_time() [3]byte {  	curr_t[SECS] = byte(tmp)  	return curr_t  } + +func get_test_time() [3]byte { +	return seconds_to_time(time_to_seconds(get_time()) + 3) +} diff --git a/src/u_prints.go b/src/u_prints.go index 6233763..64851dd 100644 --- a/src/u_prints.go +++ b/src/u_prints.go @@ -56,37 +56,49 @@ func print_time(t [3]byte) {  }  func print_time_left(curr_t [3]byte, dest_t [3]byte) { +	var left_secs uint  	curr_secs := time_to_seconds(curr_t)  	dest_secs := time_to_seconds(dest_t) -	left_secs := curr_secs - dest_secs -	fmt.Println("left_secs: [", left_secs, "]") -	// left_t := seconds_to_time(left_secs) -	// if left_secs < 60 { -	// 	fmt.Print( -	// 		"\r", -	// 		left_t[SECS], "s", -	// 		" left to sleep", -	// 	) -	// } else if left_secs < 3600 { -	// 	fmt.Print( -	// 		"\r", -	// 		left_t[MINS], "m ", -	// 		left_t[SECS], "s", -	// 		" left to sleep", -	// 	) -	// } else { -	// 	fmt.Print( -	// 		"\r", -	// 		left_t[HOURS], "h ", -	// 		left_t[MINS],  "m ", -	// 		left_t[SECS],  "s", -	// 		" left to sleep", -	// 	) -	// } +	if curr_secs <= dest_secs { +		left_secs = dest_secs - curr_secs +	} else { +		left_secs = (dest_secs + (24 * 3600)) - curr_secs +	} +	left_t := seconds_to_time(left_secs) +	if left_secs < 60 { +		fmt.Print("\r                         ") +		fmt.Print( +			"\r", +			left_t[SECS], "s", +			" left to sleep", +		) +	} else if left_secs < 3600 { +		fmt.Print( +			"\r", +			left_t[MINS], "m ", +			left_t[SECS], "s", +			" left to sleep", +		) +	} else { +		fmt.Print( +			"\r", +			left_t[HOURS], "h ", +			left_t[MINS],  "m ", +			left_t[SECS],  "s", +			" left to sleep", +		) +	}  }  func print_help() { -	fmt.Println("help") +	fmt.Println("Usage: +  go2work [option / time] + +Options: +  -h    show this help menu +  -H    show the real help menu +  -v    show version of go2work +  ")  }  func print_real_help() { diff --git a/src/u_utils.go b/src/u_utils.go index a0c5008..598efed 100644 --- a/src/u_utils.go +++ b/src/u_utils.go @@ -39,14 +39,25 @@   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   *   * go2work: src/u_utils.go - * Tue Mar 29 22:32:20 CEST 2022 + * Wed Mar 30 00:02:25 CEST 2022   * Joe   */  package main -func time_to_seconds(time [3]byte) uint16 { +func time_to_seconds(time [3]byte) uint { +	return (3600 * uint(time[HOURS])) + +		(60 * uint(time[MINS])) + +		uint(time[SECS])  } -func seconds_to_time(seconds uint16) [3]byte { +func seconds_to_time(seconds uint) [3]byte { +	var time [3]byte +	var hours, mins uint +	hours = seconds / 3600 +	time[HOURS] = byte(hours) +	mins = (seconds - ((hours) * 3600)) / 60 +	time[MINS] = byte(mins) +	time[SECS] = byte((seconds - (hours * 3600)) - mins * 60) +	return time  }  | 
