updated hclgo's command line parsing a bit
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
4617a68a71
commit
a5d13e17e5
42
main.go
42
main.go
@ -1,9 +1,10 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
//"strings"
|
||||||
"code.miflux.com/hyung-hwan/hcl/go"
|
"code.miflux.com/hyung-hwan/hcl/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -26,9 +27,17 @@ var SYSCONFDIR = "."
|
|||||||
type Param struct {
|
type Param struct {
|
||||||
log_file string
|
log_file string
|
||||||
input_file string
|
input_file string
|
||||||
|
heapsize uint
|
||||||
|
modlibdirs string
|
||||||
|
fs_usage func()
|
||||||
|
}
|
||||||
|
|
||||||
|
func empty_usage() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func handle_arguments(param *Param) error {
|
func handle_arguments(param *Param) error {
|
||||||
|
/*
|
||||||
var nargs int = len(os.Args)
|
var nargs int = len(os.Args)
|
||||||
var i int
|
var i int
|
||||||
|
|
||||||
@ -51,6 +60,36 @@ func handle_arguments(param *Param) error {
|
|||||||
|
|
||||||
param.input_file = os.Args[i]
|
param.input_file = os.Args[i]
|
||||||
return nil
|
return nil
|
||||||
|
*/
|
||||||
|
var fs *flag.FlagSet
|
||||||
|
var heapsize *uint
|
||||||
|
var modlibdirs *string
|
||||||
|
var log *string
|
||||||
|
var err error
|
||||||
|
|
||||||
|
fs = flag.NewFlagSet(os.Args[0], flag.ContinueOnError)
|
||||||
|
|
||||||
|
heapsize = fs.Uint("heapsize", 0, "specify heap size")
|
||||||
|
modlibdirs = fs.String("modlibdirs", "", "specify module library directories")
|
||||||
|
log = fs.String("log", "", "specify log file")
|
||||||
|
|
||||||
|
param.fs_usage = fs.Usage
|
||||||
|
fs.Usage = empty_usage // i don't want fs.Parse() print the usage
|
||||||
|
err = fs.Parse(os.Args[1:])
|
||||||
|
fs.Usage = param.fs_usage // restore it
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("command line error - %s", err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
if fs.NArg() != 1 {
|
||||||
|
return fmt.Errorf("no input file or too many input files specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
param.input_file = fs.Arg(0);
|
||||||
|
param.log_file = *log // TODO: parse the option part (e.g. --log /dev/stderr,debug+)
|
||||||
|
param.heapsize = *heapsize // TODO: set this to hcl
|
||||||
|
param.modlibdirs = *modlibdirs // TODO: set this to hcl
|
||||||
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -66,6 +105,7 @@ func main() {
|
|||||||
err = handle_arguments(¶m)
|
err = handle_arguments(¶m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error: %s\n", err.Error())
|
fmt.Printf("Error: %s\n", err.Error())
|
||||||
|
param.fs_usage()
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,8 +32,10 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(check_ERRORS)
|
|||||||
|
|
||||||
TEST_EXTENSIONS = .hcl .err
|
TEST_EXTENSIONS = .hcl .err
|
||||||
|
|
||||||
HCL_LOG_COMPILER = $(SHELL) $(abs_srcdir)/run.sh ../bin/hcl --modlibdirs="@abs_top_builddir@/mod:@abs_top_builddir@/mod/.libs" --heapsize=0
|
HCLBIN = ../bin/hcl
|
||||||
|
|
||||||
|
HCL_LOG_COMPILER = $(SHELL) $(abs_srcdir)/run.sh $(HCLBIN) --modlibdirs="@abs_top_builddir@/mod:@abs_top_builddir@/mod/.libs" --heapsize=0
|
||||||
AM_HCL_LOG_FLAGS =
|
AM_HCL_LOG_FLAGS =
|
||||||
|
|
||||||
ERR_LOG_COMPILER = $(SHELL) $(abs_srcdir)/err.sh ../bin/hcl --modlibdirs="@abs_top_builddir@/mod:@abs_top_builddir@/mod/.libs" --heapsize=0
|
ERR_LOG_COMPILER = $(SHELL) $(abs_srcdir)/err.sh $(HCLBIN) --modlibdirs="@abs_top_builddir@/mod:@abs_top_builddir@/mod/.libs" --heapsize=0
|
||||||
AM_ERR_LOG_FLAGS =
|
AM_ERR_LOG_FLAGS =
|
||||||
|
@ -497,9 +497,10 @@ check_ERRORS = \
|
|||||||
|
|
||||||
EXTRA_DIST = $(check_SCRIPTS) $(check_ERRORS)
|
EXTRA_DIST = $(check_SCRIPTS) $(check_ERRORS)
|
||||||
TEST_EXTENSIONS = .hcl .err
|
TEST_EXTENSIONS = .hcl .err
|
||||||
HCL_LOG_COMPILER = $(SHELL) $(abs_srcdir)/run.sh ../bin/hcl --modlibdirs="@abs_top_builddir@/mod:@abs_top_builddir@/mod/.libs" --heapsize=0
|
HCLBIN = ../bin/hcl
|
||||||
|
HCL_LOG_COMPILER = $(SHELL) $(abs_srcdir)/run.sh $(HCLBIN) --modlibdirs="@abs_top_builddir@/mod:@abs_top_builddir@/mod/.libs" --heapsize=0
|
||||||
AM_HCL_LOG_FLAGS =
|
AM_HCL_LOG_FLAGS =
|
||||||
ERR_LOG_COMPILER = $(SHELL) $(abs_srcdir)/err.sh ../bin/hcl --modlibdirs="@abs_top_builddir@/mod:@abs_top_builddir@/mod/.libs" --heapsize=0
|
ERR_LOG_COMPILER = $(SHELL) $(abs_srcdir)/err.sh $(HCLBIN) --modlibdirs="@abs_top_builddir@/mod:@abs_top_builddir@/mod/.libs" --heapsize=0
|
||||||
AM_ERR_LOG_FLAGS =
|
AM_ERR_LOG_FLAGS =
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user