changeset 19:8008046c8d76

ut: add tee.
author pyon@macmini
date Sat, 23 Jun 2018 12:27:35 +0900
parents 45ca03520eea
children 0a6541999b53
files src/ut/lu/lu.go src/ut/main.go
diffstat 2 files changed, 24 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/ut/lu/lu.go	Sat Jun 23 09:38:15 2018 +0900
+++ b/src/ut/lu/lu.go	Sat Jun 23 12:27:35 2018 +0900
@@ -416,3 +416,22 @@
     }
 }
 
+/* tee: done. */
+func Tee( file string ) {
+    if _, err := os.Stat( file ); !os.IsNotExist( err ) {
+        if err := os.Remove( file ); err != nil {
+            log.Fatal( err )
+        }
+    }
+    f, err := os.OpenFile( file, os.O_RDWR|os.O_CREATE, 0644 )
+    if err != nil {
+        log.Fatal( err )
+    }
+    defer f.Close()
+
+    w := io.MultiWriter( f, os.Stdout )
+    if _, err := io.Copy( w, os.Stdin ); err != nil {
+        log.Fatal( err )
+    }
+}
+
--- a/src/ut/main.go	Sat Jun 23 09:38:15 2018 +0900
+++ b/src/ut/main.go	Sat Jun 23 12:27:35 2018 +0900
@@ -27,7 +27,7 @@
     "./lu"
 )
 
-var version = "1.03"
+var version = "1.04"
 
 func main() {
 
@@ -51,6 +51,7 @@
     var grepv    = flag.String( "b", "", "little grep -v tool." )                           // ok
     var orgrep   = flag.String( "A", "", "little grep tool. ( from list file )" )           // ok
     var orgrepv  = flag.String( "B", "", "little grep -v tool. ( from list file )" )        // ok
+    var tee      = flag.String( "e", "", "little tee tool." )                               // ok
 
     var msleep   = flag.Bool( "M", false, "sleep." )
     //var swatch   = flag.Bool( "W", false, "stop watch." )
@@ -58,7 +59,6 @@
     //var bhole   = flag.Bool( "k", false, "black hole. ( /dev/null )" )
     var cmdtime  = flag.Bool( "T", false, "measure program running time." )
     var touch    = flag.Bool( "t", false, "little touch tool." )
-    var tee      = flag.Bool( "e", false, "little tee tool." )
     var replace  = flag.Bool( "r", false, "replace strings. ( s/arg1/arg2/g )" )
     var sort     = flag.Bool( "s", false, "little sort tool." )
     var nsort    = flag.Bool( "ns", false, "little number sort tool." )
@@ -145,9 +145,9 @@
     }
         */
 
-    if *tee {
-        fmt.Fprintln( os.Stderr, "not implement" )
-        os.Exit( 3 )
+    if *tee != "" { // done.
+        lu.Tee( *tee )
+        os.Exit( 0 )
     }
 
     if *sort {