go-hep.org/x/hep@v0.38.1/groot/cmd/root-cp/main.go (about) 1 // Copyright ©2018 The go-hep Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // root-cp selects and copies keys from a ROOT file to another ROOT file. 6 // 7 // Usage: root-cp [options] file1.root[:REGEXP] [file2.root[:REGEXP] [...]] out.root 8 // 9 // ex: 10 // 11 // $> root-cp f.root out.root 12 // $> root-cp f1.root f2.root f3.root out.root 13 // $> root-cp f1.root:hist.* f2.root:h2 out.root 14 package main // import "go-hep.org/x/hep/groot/cmd/root-cp" 15 16 import ( 17 "flag" 18 "fmt" 19 "log" 20 "os" 21 22 "go-hep.org/x/hep/groot/rcmd" 23 _ "go-hep.org/x/hep/groot/riofs/plugin/http" 24 _ "go-hep.org/x/hep/groot/riofs/plugin/xrootd" 25 ) 26 27 func main() { 28 log.SetPrefix("root-cp: ") 29 log.SetFlags(0) 30 log.SetOutput(os.Stderr) 31 32 flag.Usage = func() { 33 fmt.Fprintf( 34 os.Stderr, 35 `Usage: root-cp [options] file1.root[:REGEXP] [file2.root[:REGEXP] [...]] out.root 36 37 ex: 38 $> root-cp f.root out.root 39 $> root-cp f1.root f2.root f3.root out.root 40 $> root-cp f1.root:hist.* f2.root:h2 out.root 41 42 options: 43 `, 44 ) 45 flag.PrintDefaults() 46 } 47 48 flag.Parse() 49 50 if flag.NArg() < 2 { 51 log.Printf("error: you need to give input and output ROOT files\n\n") 52 flag.Usage() 53 os.Exit(1) 54 } 55 56 dst := flag.Arg(flag.NArg() - 1) 57 srcs := flag.Args()[:flag.NArg()-1] 58 59 err := rcmd.Copy(dst, srcs) 60 if err != nil { 61 log.Fatal(err) 62 } 63 }