annotate src/unsleep.go @ 10:b0784443ed87

add netcat and unsleep.
author pyon@macmini
date Sat, 04 Nov 2017 11:07:50 +0900
parents
children c3a589f0521d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
1 package main
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
2
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
3 import(
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
4 "flag"
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
5 "fmt"
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
6 "time"
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
7 "os"
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
8 )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
9
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
10 var sec = 0
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
11
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
12 func main() {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
13
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
14 // arguments
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
15 t := flag.Int( "t", 1, "interval" )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
16 s := flag.Bool( "s", false, "normal sleep" )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
17 q := flag.Bool( "q", false, "quiet ( not print count and time )" )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
18 c := flag.Int( "c", 0, "loop count ( without [s] )" )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
19 m := flag.Bool( "m", false, "print every minute ( without [q] )" )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
20 b := flag.Bool( "b", false, "beep" )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
21
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
22 flag.Parse()
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
23
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
24 if *t > 0 {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
25
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
26 if !*q {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
27 s := fmt.Sprintf( "[%04d] %s ...", *c, time.Now().Format( "15:04:05" ) )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
28 fmt.Println( s )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
29 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
30
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
31 if *s {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
32 for i := 0; i < *t; i++ {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
33 sleep1ms( *q, *m, *b, i + 1 )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
34 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
35 os.Exit( 0 )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
36 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
37
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
38 if *c < 0 {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
39 fmt.Fprintln( os.Stderr, "bad loop count." )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
40 os.Exit( 1 )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
41 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
42 if *c > 0 {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
43 for i := 0; i < *c; i++ {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
44 sleep1ms( *q, *m, *b, *c - i - 1 )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
45 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
46 } else {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
47 n := 1
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
48 for {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
49 sleep1ms( *q, *m, *b, n )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
50 n++
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
51 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
52 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
53
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
54 } else {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
55 fmt.Fprintln( os.Stderr, "bad time." )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
56 os.Exit( 1 )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
57 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
58 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
59
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
60 func sleep1ms( quiet, minute, beep bool, n int ) {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
61
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
62 s := time.Duration( 1.00 * 1000 ) * time.Millisecond
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
63 time.Sleep( s )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
64 sec++
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
65
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
66 if minute && sec % 60 == 0 {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
67 str := fmt.Sprintf( "[%04d] %s", n / 60, time.Now().Format( "15:04:05" ) )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
68 fmt.Println( str )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
69 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
70 if !quiet && !minute {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
71 str := fmt.Sprintf( "[%04d] %s", n, time.Now().Format( "15:04:05" ) )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
72 fmt.Println( str )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
73 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
74
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
75 if beep {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
76 //os.Stdout.Write( []byte( "\u0007" ) )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
77 fmt.Print( "\a" )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
78 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
79 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
80