go-hep.org/x/hep@v0.38.1/groot/cmd/root-merge/main.go (about)

     1  // Copyright ©2019 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-merge merges ROOT files' content into a merged ROOT file.
     6  //
     7  // Usage: root-merge [options] file1.root [file2.root [file3.root [...]]]
     8  //
     9  // ex:
    10  //
    11  //	$> root-merge -o out.root ./testdata/chain.flat.1.root ./testdata/chain.flat.2.root
    12  //
    13  // options:
    14  //
    15  //	-o string
    16  //	  	path to merged output ROOT file (default "out.root")
    17  //	-v	enable verbose mode
    18  package main // import "go-hep.org/x/hep/groot/cmd/root-merge"
    19  
    20  import (
    21  	"flag"
    22  	"fmt"
    23  	"log"
    24  	"os"
    25  
    26  	"go-hep.org/x/hep/groot/rcmd"
    27  	_ "go-hep.org/x/hep/groot/riofs/plugin/http"
    28  	_ "go-hep.org/x/hep/groot/riofs/plugin/xrootd"
    29  )
    30  
    31  func main() {
    32  	log.SetPrefix("root-merge: ")
    33  	log.SetFlags(0)
    34  
    35  	var (
    36  		oname   = flag.String("o", "out.root", "path to merged output ROOT file")
    37  		verbose = flag.Bool("v", false, "enable verbose mode")
    38  	)
    39  
    40  	flag.Usage = func() {
    41  		fmt.Fprintf(
    42  			os.Stderr,
    43  			`Usage: root-merge [options] file1.root [file2.root [file3.root [...]]]
    44  
    45  ex:
    46   $> root-merge -o out.root ./testdata/chain.flat.1.root ./testdata/chain.flat.2.root
    47  
    48  options:
    49  `,
    50  		)
    51  		flag.PrintDefaults()
    52  	}
    53  
    54  	flag.Parse()
    55  
    56  	if flag.NArg() < 1 {
    57  		flag.Usage()
    58  		log.Fatalf("missing input files")
    59  	}
    60  
    61  	fnames := flag.Args()
    62  
    63  	err := rcmd.Merge(*oname, fnames, *verbose)
    64  	if err != nil {
    65  		log.Fatalf("could not merge ROOT files: %+v", err)
    66  	}
    67  }