annotate src/ut/main.go @ 46:6ec28d3c3e00

small changes.
author pyon@macmini
date Sat, 18 Apr 2020 21:10:29 +0900
parents 1b293bb0a011
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
1 /*
24
f904a5f5b3cf ut: small fix.
pyon@macmini
parents: 23
diff changeset
2 UT : Unix like utility Tool.
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
3
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
4 TODO:
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
5 password
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
6 delete file on server
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
7 */
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
8 package main
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
9
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
10 import (
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
11 "bufio"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
12 "bytes"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
13 "flag"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
14 "fmt"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
15 "io"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
16 "io/ioutil"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
17 "log"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
18 "mime/multipart"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
19 "net/http"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
20 "os"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
21 "runtime"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
22 "strconv"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
23 "strings"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
24 "time"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
25
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
26 "./lu"
20
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
27 "./nw"
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
28 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
29
21
4232b4cbeeb5 ul: add replace.
pyon@macmini
parents: 20
diff changeset
30 var version = "1.06"
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
31
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
32 func main() {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
33
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
34 var getfile = flag.Bool( "g", false, "get a file from site." ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
35 var putfile = flag.Bool( "G", false, "put a file to site." ) // ok
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
36 var compress = flag.Bool( "z", false, "compress files. (.tgz)" ) // ok
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
37 var uncmprss = flag.Bool( "x", false, "uncompress files. (.tgz )" ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
38 var noprefix = flag.Bool( "n", false, "not add prefix(YYYYMMDDhhmm_) to filename." ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
39
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
40 var wget = flag.Bool( "w", false, "little wget tool." ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
41 var wc_l = flag.Bool( "l", false, "little wc -l tool." ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
42 var catn = flag.Bool( "C", false, "little cat -n tool." ) // ok
20
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
43 var reverse = flag.Bool( "R", false, "little tac tool. ( reverse file )" ) // ok
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
44 var uniq = flag.Bool( "u", false, "little uniq tool." ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
45 var uniqc = flag.Bool( "uc", false, "little uniq tool.( count )" ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
46 var uniqd = flag.Bool( "ud", false, "little uniq tool.( only dup )" ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
47 var uniqdc = flag.Bool( "udc", false, "little uniq tool.( count dup )" ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
48 var md5 = flag.Bool( "md5", false, "md5." ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
49 var sha256 = flag.Bool( "sha256", false, "sha256." ) // ok
18
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
50 var grep = flag.String( "a", "", "little grep tool." ) // ok
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
51 var grepv = flag.String( "b", "", "little grep -v tool." ) // ok
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
52 var orgrep = flag.String( "A", "", "little grep tool. ( from list file )" ) // ok
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
53 var orgrepv = flag.String( "B", "", "little grep -v tool. ( from list file )" ) // ok
19
8008046c8d76 ut: add tee.
pyon@macmini
parents: 18
diff changeset
54 var tee = flag.String( "e", "", "little tee tool." ) // ok
21
4232b4cbeeb5 ul: add replace.
pyon@macmini
parents: 20
diff changeset
55 var replace = flag.Bool( "r", false, "replace strings. ( s/arg1/arg2/g )" ) // ok
20
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
56 var nc = flag.Bool( "nc", false, "netcat." ) // ok
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
57 var ncl = flag.Bool( "ncl", false, "netcat listen-mode." ) // ok
26
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
58 var fserver = flag.Int( "fs", 0, "file server." ) // ok
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
59 var wserver = flag.Int( "ws", 0, "web server." ) // ok
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
60
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
61 var msleep = flag.Bool( "M", false, "sleep." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
62 //var swatch = flag.Bool( "W", false, "stop watch." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
63 //var bccalc = flag.Bool( "j", false, "calculator." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
64 //var bhole = flag.Bool( "k", false, "black hole. ( /dev/null )" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
65 var cmdtime = flag.Bool( "T", false, "measure program running time." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
66 var touch = flag.Bool( "t", false, "little touch tool." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
67 var sort = flag.Bool( "s", false, "little sort tool." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
68 var nsort = flag.Bool( "ns", false, "little number sort tool." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
69 var tree = flag.Bool( "f", false, "little tree tool." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
70 var head = flag.Int( "d", 0, "little head/tail tool.( head:n, tail:-n )" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
71 //var cut = flag.String( "c", "", "little cut tool ( only csv )." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
72 var migemo = flag.Bool( "m", false, "migemo tool." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
73 //var split = flag.Int( "s", 100, "split file ( default 100 MB )." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
74 var ipscan = flag.Bool( "p", false, "ping." )
26
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
75 var ptscan = flag.Int( "P", 0, "port scan." )
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
76 var minfo = flag.Bool( "i", false, "print machine infomation." ) // half-ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
77
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
78 //var imgsz = flag.String( "is", "", "resize image" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
79 //var imgconv = flag.String( "ic", "", "convert image type" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
80
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
81 var pversion = flag.Bool( "v", false, "print version." ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
82 var help = flag.Bool( "h", false, "help." ) // ok
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
83 flag.Parse()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
84
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
85 if *pversion {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
86 fmt.Fprintf( os.Stderr, "%s [ ver %s ]\n", os.Args[0], version )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
87 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
88 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
89
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
90 if *help {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
91 print_help()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
92 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
93 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
94
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
95 if *minfo {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
96 // IP, mask, gw, dns
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
97 host, _ := os.Hostname()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
98 fmt.Fprintf( os.Stderr, "OS = %s\n", runtime.GOOS )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
99 fmt.Fprintf( os.Stderr, "ARCH = %s\n", runtime.GOARCH )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
100 fmt.Fprintf( os.Stderr, "HOSTNAME = %s", host )
20
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
101 fmt.Fprintf( os.Stderr, " [%s]\n", nw.GetLocalIP() )
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
102 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
103 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
104
23
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
105 /* Here Servers */
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
106 if *fserver != 0 {
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
107 addr := nw.GetLocalIP() + ":" + fmt.Sprintf( "%d", *fserver )
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
108 log.Fatal( http.ListenAndServe( addr, http.FileServer( http.Dir( ".") ) ) )
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
109 }
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
110
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
111 if *wserver != 0 {
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
112 addr := nw.GetLocalIP() + ":" + fmt.Sprintf( "%d", *wserver )
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
113 http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) {
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
114 if flag.NArg() == 0 {
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
115 fmt.Fprintf( w, "WebServer\n" )
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
116 return
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
117 }
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
118 file := flag.Args()[0]
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
119 f, err := os.Open( file )
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
120 if err != nil {
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
121 fmt.Fprintf( w, "WebServer\n" )
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
122 }
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
123 if _, err = io.Copy( w, f ); err != nil {
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
124 log.Fatal( err )
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
125 }
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
126 f.Close()
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
127 } )
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
128 log.Fatal( http.ListenAndServe( addr, nil ) )
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
129 }
a3c8d0b20a60 ut: add file server & web server.
pyon@macmini
parents: 21
diff changeset
130
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
131 /* Here Utility Function ( unix tool like tools ) */
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
132 if *msleep {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
133 fmt.Fprintln( os.Stderr, "not implement" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
134 os.Exit( 3 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
135 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
136
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
137 if *cmdtime {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
138 fmt.Fprintln( os.Stderr, "not implement" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
139 os.Exit( 3 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
140 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
141
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
142 if *wget { // done.
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
143 if flag.NArg() == 0 {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
144 fmt.Fprintln( os.Stderr, "no url" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
145 os.Exit( 1 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
146 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
147 url := flag.Args()[0]
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
148 if !strings.Contains( url, "://" ) {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
149 url = "http://" + url
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
150 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
151
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
152 fmt.Printf( "%s", url_get( url ) )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
153 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
154 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
155
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
156 /*
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
157 if *cut {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
158 fmt.Fprintln( os.Stderr, "not implement" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
159 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
160 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
161 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
162 lu.CutCsv( flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
163 os.Exit( 3 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
164 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
165 */
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
166
19
8008046c8d76 ut: add tee.
pyon@macmini
parents: 18
diff changeset
167 if *tee != "" { // done.
8008046c8d76 ut: add tee.
pyon@macmini
parents: 18
diff changeset
168 lu.Tee( *tee )
8008046c8d76 ut: add tee.
pyon@macmini
parents: 18
diff changeset
169 os.Exit( 0 )
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
170 }
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
171
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
172 if *sort {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
173 fmt.Fprintln( os.Stderr, "not implement" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
174 os.Exit( 3 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
175 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
176
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
177 if *nsort {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
178 fmt.Fprintln( os.Stderr, "not implement" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
179 os.Exit( 3 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
180 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
181
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
182 if *tree {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
183 fmt.Fprintln( os.Stderr, "not implement" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
184 os.Exit( 3 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
185 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
186
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
187 if *catn { // done.
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
188 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
189 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
190 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
191 lu.Cat_n( flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
192 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
193 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
194
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
195 if *wc_l { // done.
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
196 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
197 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
198 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
199 lu.Wc_l( flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
200 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
201 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
202
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
203 if *uniq || *uniqc || *uniqd || *uniqdc { // done.
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
204 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
205 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
206 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
207 if *uniqdc {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
208 *uniqc, *uniqd = true, true
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
209 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
210 lu.Uniq( *uniqc, *uniqd, flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
211 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
212 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
213
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
214 if *head != 0 {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
215 fmt.Fprintln( os.Stderr, "not implement" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
216 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
217 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
218 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
219 lu.Head( *head, flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
220 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
221 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
222
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
223 if *reverse { // done.
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
224 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
225 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
226 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
227 lu.Reverse( flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
228 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
229 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
230
18
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
231 if *grep != "" { // done.
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
232 if err := is_exist_files( flag.Args() ); err != nil {
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
233 log.Fatal( err )
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
234 }
18
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
235 lu.Grep( *grep, false, flag.Args() )
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
236 os.Exit( 0 )
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
237 }
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
238
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
239 if *grepv != "" { // done.
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
240 if err := is_exist_files( flag.Args() ); err != nil {
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
241 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
242 }
18
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
243 lu.Grep( *grepv, true, flag.Args() )
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
244 os.Exit( 0 )
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
245 }
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
246
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
247 if *orgrep != "" {
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
248 if err := is_exist_files( flag.Args() ); err != nil {
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
249 log.Fatal( err )
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
250 }
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
251 lu.OrGrep( *orgrep, false, flag.Args() )
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
252 os.Exit( 0 )
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
253 }
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
254
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
255 if *orgrepv != "" {
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
256 if err := is_exist_files( flag.Args() ); err != nil {
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
257 log.Fatal( err )
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
258 }
45ca03520eea ut: add grep.
pyon@macmini
parents: 17
diff changeset
259 lu.OrGrep( *orgrepv, true, flag.Args() )
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
260 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
261 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
262
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
263 if *migemo {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
264 fmt.Fprintln( os.Stderr, "not implement" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
265 os.Exit( 3 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
266 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
267
21
4232b4cbeeb5 ul: add replace.
pyon@macmini
parents: 20
diff changeset
268 if *replace { // done.
4232b4cbeeb5 ul: add replace.
pyon@macmini
parents: 20
diff changeset
269 if flag.NArg() < 2 {
4232b4cbeeb5 ul: add replace.
pyon@macmini
parents: 20
diff changeset
270 fmt.Fprintf( os.Stderr, "too few argument.\n" )
4232b4cbeeb5 ul: add replace.
pyon@macmini
parents: 20
diff changeset
271 os.Exit( 1 )
4232b4cbeeb5 ul: add replace.
pyon@macmini
parents: 20
diff changeset
272 }
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
273 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
274 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
275 }
21
4232b4cbeeb5 ul: add replace.
pyon@macmini
parents: 20
diff changeset
276 lu.Replace( flag.Args()[0], flag.Args()[1], flag.Args()[2:] )
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
277 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
278 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
279
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
280 if *touch {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
281 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
282 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
283 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
284 lu.Touch( flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
285 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
286 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
287
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
288 if *md5 { // done.
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
289 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
290 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
291 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
292 lu.Md5( flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
293 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
294 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
295
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
296 if *sha256 { // done.
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
297 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
298 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
299 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
300 lu.Sha256( flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
301 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
302 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
303
20
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
304 if *nc { // done.
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
305 if flag.NArg() != 2 {
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
306 fmt.Fprintf( os.Stderr, "$ ut -nc 192.168.0.55 8080\n" )
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
307 os.Exit( 1 )
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
308 }
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
309 nw.Netcat( flag.Args()[0], flag.Args()[1] )
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
310 os.Exit( 0 )
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
311 }
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
312
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
313 if *ncl { // done.
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
314 if flag.NArg() == 0 {
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
315 fmt.Fprintf( os.Stderr, "$ ut -ncl 8080\n" )
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
316 os.Exit( 1 )
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
317 }
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
318 nw.Netcat_l( flag.Args()[0] )
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
319 os.Exit( 0 )
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
320 }
0a6541999b53 ut: add netcat.
pyon@macmini
parents: 19
diff changeset
321
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
322 if *ipscan {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
323 fmt.Fprintln( os.Stderr, "not implement" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
324 os.Exit( 2 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
325 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
326
26
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
327 if *ptscan != 0 {
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
328 fmt.Fprintln( os.Stderr, "not implement" )
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
329 fmt.Fprintln( os.Stderr, "$ ut -P 1 192.168.0.101 3000 # vanilla scan\n" )
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
330 fmt.Fprintln( os.Stderr, "$ ut -P 2 192.168.0.101 3000 # syn scan\n" )
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
331 fmt.Fprintln( os.Stderr, "$ ut -P 3 192.168.0.101 3000 # fin scan\n" )
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
332 fmt.Fprintln( os.Stderr, "$ ut -P 4 192.168.0.101 3000 # Xmas scan\n" )
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
333 fmt.Fprintln( os.Stderr, "$ ut -P 9 192.168.0.101 3000 # null scan\n" )
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
334 os.Exit( 2 )
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
335 }
1b293bb0a011 add gomatrix.
pyon@macmini
parents: 24
diff changeset
336
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
337 if *compress && !*putfile { // done.
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
338 if err := is_exist_files( flag.Args() ); err != nil {
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
339 log.Fatal( err )
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
340 }
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
341 tgz := time.Now().Format( "200601021504.tgz" )
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
342 lu.Tgz( tgz, flag.Args() )
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
343 os.Exit( 0 )
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
344 }
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
345
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
346 if *uncmprss { // done.
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
347 if err := is_exist_files( flag.Args() ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
348 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
349 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
350 lu.UnTgz( flag.Args() )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
351 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
352 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
353
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
354 /* Here My Uplaad / Download Function */
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
355 host := "http://777.nazo.cc"
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
356
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
357 if *putfile {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
358 if flag.NArg() > 0 {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
359
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
360 // アップロードには,このプログラムで認証が必要:未実装
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
361 if !is_valid_user() {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
362 fmt.Println( "wrong password." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
363 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
364 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
365
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
366 for _, file := range flag.Args() {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
367 if _, err := os.Stat( file ); os.IsNotExist( err ) {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
368 fmt.Fprintf( os.Stderr, "%s: not exist\n", file )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
369 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
370 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
371
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
372 url := host + "/uploader/index.cgi/goup/post"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
373 //url = "http://localhost:3000/gofile"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
374
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
375 var prefix string
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
376 if !*noprefix {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
377 prefix = time.Now().Format( "200601021504_" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
378 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
379
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
380 // 圧縮
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
381 if *compress {
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
382 tmpfile, err := ioutil.TempFile( ".", "muxx" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
383 if err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
384 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
385 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
386
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
387 tgz := prefix + tmpfile.Name() + ".tgz"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
388 os.Rename( tmpfile.Name(), tgz )
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
389 defer os.Remove( tgz )
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
390 lu.Tgz( tgz, flag.Args() )
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
391 fmt.Printf( "archive & compress ...done [%s].\n", tgz )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
392
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
393 if err := post_file( url, tgz ); err != nil {
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
394 log.Fatal( err )
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
395 }
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
396 fmt.Println( "upload ...done." )
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
397 // 非圧縮
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
398 } else {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
399 for _, file := range flag.Args() {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
400 if !*noprefix {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
401 c, err := ioutil.ReadFile( file )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
402 if err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
403 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
404 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
405 if err := ioutil.WriteFile( prefix + file, c, 0644 ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
406 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
407 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
408 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
409 if err := post_file( url, prefix + file ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
410 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
411 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
412 fmt.Println( file + "\tupload ...done." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
413 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
414 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
415 }
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
416 os.Exit( 0 )
16
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
417 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
418
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
419 // ファイル一覧を取得
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
420 if *getfile {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
421 url := host + "/uploader/index.cgi/goup/"
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
422 list := url_get( url )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
423 files := strings.Split( string( list ), "\n" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
424
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
425 var filename [100]string
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
426 for i, file := range files {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
427 info := strings.Split( file, "#" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
428 fmt.Printf( "[%3d] %-28s %10s %s\n", i + 1, info[0], info[1], info[2] )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
429 filename[i] = info[0]
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
430 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
431
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
432 fmt.Print( "> " )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
433 scanner := bufio.NewScanner( os.Stdin )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
434 scanner.Scan()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
435 input := scanner.Text()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
436
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
437 if strings.Compare( input, "q" ) == 0 || strings.Compare( input, "bye" ) == 0 {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
438 fmt.Println( "bye." )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
439 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
440 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
441
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
442 no, err := strconv.Atoi( input )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
443 if err != nil || no < 1 || no > len( files ) {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
444 fmt.Fprint( os.Stderr, "bad input\n" )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
445 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
446 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
447
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
448 url = host + "/uploader/files/goup/" + filename[ no - 1 ]
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
449 fmt.Printf( "downloading %s...\n", filename[ no - 1 ] )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
450 bytes := url_get( url )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
451 if err := ioutil.WriteFile( filename[ no - 1 ], bytes, 0644 ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
452 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
453 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
454 os.Exit( 0 )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
455 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
456
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
457 print_help()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
458 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
459
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
460 // Subroutines
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
461 func url_get( url string ) []byte {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
462 res, err := http.Get( url )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
463 if err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
464 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
465 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
466 b, err := ioutil.ReadAll( res.Body )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
467 res.Body.Close()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
468 if err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
469 log.Fatal( err )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
470 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
471 return b
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
472 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
473
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
474 func post_file( url, file string ) error {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
475
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
476 f, err := os.Open( file )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
477 if err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
478 return err
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
479 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
480 defer f.Close()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
481
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
482 buf := &bytes.Buffer{}
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
483 writer := multipart.NewWriter( buf )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
484 fw, err := writer.CreateFormFile( "filename", file )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
485 if err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
486 return err
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
487 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
488
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
489 if _, err = io.Copy( fw, f ); err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
490 return err
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
491 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
492
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
493 ct := writer.FormDataContentType()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
494 writer.Close()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
495
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
496 resp, err := http.Post( url, ct, buf )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
497 if err != nil {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
498 fmt.Fprintf( os.Stderr, "%s", resp.Status )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
499 return err
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
500 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
501
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
502 return nil
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
503 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
504
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
505 func is_valid_user() bool {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
506 return true
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
507 return false
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
508 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
509
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
510 func is_exist_files( files []string ) error {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
511 for _, file := range files {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
512 if _, err := os.Stat( file ); os.IsNotExist( err ) {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
513 return fmt.Errorf( "%s: not exist\n", file )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
514 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
515 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
516 return nil
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
517 }
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
518
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
519 func print_help() {
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
520 fmt.Fprintf( os.Stderr, "Usage of %s [%s]:\n", os.Args[0], version )
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
521 flag.PrintDefaults()
38b64afbaf79 add ut. ( unix-like tools )
pyon@macmini
parents:
diff changeset
522 }
17
72ce457fb99d ut: bug fix.
pyon@macmini
parents: 16
diff changeset
523