diff options
| author | ayyansea <ayyansea@gmail.com> | 2024-11-21 22:58:38 +0300 |
|---|---|---|
| committer | ayyansea <ayyansea@gmail.com> | 2024-11-21 22:58:38 +0300 |
| commit | 7f9ea2a5c01076017b01164a885be46215f33546 (patch) | |
| tree | f2800336bc483e60e473d776e880a46f29a07fa0 /cmd | |
| parent | b3c0f0d863ae80cde48a7c0462d9b784b6193c6e (diff) | |
feat: use config file and FilterList
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/uptfs/main.go | 39 |
1 files changed, 11 insertions, 28 deletions
diff --git a/cmd/uptfs/main.go b/cmd/uptfs/main.go index c7b98e1..3583dfc 100644 --- a/cmd/uptfs/main.go +++ b/cmd/uptfs/main.go @@ -9,16 +9,14 @@ import ( "strings" "github.com/alexflint/go-arg" + "github.com/ayyansea/uptfs/internal/config" "github.com/ayyansea/uptfs/internal/filter" "github.com/ayyansea/uptfs/internal/split" "github.com/ayyansea/uptfs/internal/token" ) var args struct { - ConfigFile string `arg:"-c" help:"path to config file" default:""` - InputFile string `arg:"-i" help:"path to input file" default:""` - OutputFile string `arg:"-o" help:"path to output file" default:""` - Filters []string `arg:"-f" help:"list of filters" default:""` + ConfigFile string `arg:"-c" help:"path to config file" default:""` } func errExit(err error) { @@ -29,7 +27,7 @@ func errExit(err error) { func main() { arg.MustParse(&args) - var configFilePath, inputFilePath, outFilePath string + var configFilePath string var err error if args.ConfigFile != "" { @@ -39,24 +37,9 @@ func main() { errExit(err) } - if args.InputFile != "" { - inputFilePath, err = filepath.Abs(args.InputFile) - } - if err != nil { - errExit(err) - } - - if args.OutputFile != "" { - outFilePath, err = filepath.Abs(args.OutputFile) - } - if err != nil { - errExit(err) - } - - fmt.Printf("%v %v %v\n", - configFilePath, - inputFilePath, - outFilePath) + var config config.Config + config.LoadConfig(configFilePath) + fmt.Printf("Config: %v\n", config) scanner := bufio.NewScanner(os.Stdin) scanner.Scan() @@ -81,11 +64,11 @@ func main() { var linkedTokens token.LinkedTokenList token.SliceToLinkedTokenSlice(tokens, &linkedTokens) - lowercaseFilter := filter.NewLowercaseFilterWithExtraSteps() - uppercaseFilter := filter.NewUppercaseFilter() - for current := linkedTokens.GetHead(); current != nil; current = current.GetNextToken() { - current.SetContent(lowercaseFilter.Filter(current.GetContent())) - current.SetContent(uppercaseFilter.Filter(current.GetContent())) + for _, filterName := range config.Filters { + filter := filter.FilterList[filterName]() + current.SetContent(filter.Filter(current.GetContent())) + } } + } |
