annotate src/unsleep.go @ 56:7396e7407abd

searcher version up.
author pyon@macmini
date Sat, 27 Jun 2020 16:25:13 +0900
parents c3a589f0521d
children
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"
11
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
6 "math"
10
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
7 "time"
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
8 "os"
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
9 )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
10
11
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
11 var version = 0.1
10
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
12
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
13 func main() {
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
14
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
15 // arguments
11
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
16 q := flag.Bool( "q", false, "quiet ( don't print count and time ) [ default:false ]" )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
17 l := flag.Int( "l", 0, "loop count ( l seconds / l minute ) [ default:0 ( no-limit ) ]" )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
18 m := flag.Bool( "m", false, "use minute ( not second ) [ default:false ( use second )]" )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
19 b := flag.Bool( "b", false, "sound beep [ default:false ]" )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
20 v := flag.Bool( "v", false, "print version")
10
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
11
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
24 if *v {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
25 fmt.Fprintf( os.Stderr, "unsleep : version %v\n", version )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
26 os.Exit( 0 )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
27 }
10
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
28
11
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
29 if *l < 0 {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
30 fmt.Fprintln( os.Stderr, "bad loop count." )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
31 os.Exit( 1 )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
32 }
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
33
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
34 if !*q {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
35 s := fmt.Sprintf( "[%04d] %s ...", *l, time.Now().Format( "15:04:05" ) )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
36 fmt.Println( s )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
37 }
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
38 mysleep( *q, *m, *b, *l )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
39 }
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
40
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
41 func mysleep( quiet, minute, beep bool, limit int ) {
10
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
42
11
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
43 c := time.Tick( 1 * time.Second )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
44 if minute {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
45 c = time.Tick( 1 * time.Minute )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
46 }
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
47
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
48 n := 1
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
49 for range c {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
50 if !quiet {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
51 str := fmt.Sprintf( "[%04d] %s", int( math.Abs( float64( limit - n ) ) ), time.Now().Format( "15:04:05" ) )
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
52 fmt.Println( str )
10
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
53 }
11
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
54 if beep {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
55 alarm( 1 )
10
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
56 }
11
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
57 n++
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
58 if limit < n && limit != 0 {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
59 break
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
60 }
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
61 }
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
62 if beep {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
63 alarm( 3 )
10
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
64 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
65 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
66
11
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
67 func alarm( n int ) {
c3a589f0521d refine code.
pyon@macmini
parents: 10
diff changeset
68 for i:= 0; i < n; i++ {
10
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
69 //os.Stdout.Write( []byte( "\u0007" ) )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
70 fmt.Print( "\a" )
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
71 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
72 }
b0784443ed87 add netcat and unsleep.
pyon@macmini
parents:
diff changeset
73