|
5 | 5 | // |
6 | 6 | // ================================================================= |
7 | 7 |
|
| 8 | +// railgun is the command line program for Railgun. |
| 9 | +// |
8 | 10 | package main |
9 | 11 |
|
10 | 12 | import ( |
@@ -42,7 +44,6 @@ import ( |
42 | 44 | ) |
43 | 45 |
|
44 | 46 | var GO_RAILGUN_COMPRESSION_ALGORITHMS = []string{"none", "bzip2", "gzip", "snappy"} |
45 | | -var GO_RAILGUN_FORMATS = []string{"bson", "csv", "tsv", "hcl", "hcl2", "json", "jsonl", "properties", "toml", "yaml"} |
46 | 47 | var GO_RAILGUN_DEFAULT_SALT = "4F56C8C88B38CD8CD96BF8A9724F4BFE" |
47 | 48 |
|
48 | 49 | func printUsage() { |
@@ -116,19 +117,19 @@ func main() { |
116 | 117 |
|
117 | 118 | flag.StringVar(&input_uri, "input_uri", "stdin", "The input uri") |
118 | 119 | flag.StringVar(&input_compression, "input_compression", "none", "The input compression: "+strings.Join(GO_RAILGUN_COMPRESSION_ALGORITHMS, ", ")) |
119 | | - flag.StringVar(&input_format, "input_format", "", "The input format: "+strings.Join(GO_RAILGUN_FORMATS, ", ")) |
| 120 | + flag.StringVar(&input_format, "input_format", "", "The input format: "+strings.Join(gss.Formats, ", ")) |
120 | 121 | flag.StringVar(&input_header_text, "h", "", "The input header if the stdin input has no header.") |
121 | 122 | flag.StringVar(&input_comment, "c", "", "The input comment character, e.g., #. Commented lines are not sent to output.") |
122 | 123 | flag.StringVar(&input_passphrase_string, "input_passphrase", "", "The input passphrase.") |
123 | | - flag.StringVar(&input_salt_string, "input_salt", GO_RAILGUN_DEFAULT_SALT, "The input salt as hexidecimal.") |
| 124 | + flag.StringVar(&input_salt_string, "input_salt", GO_RAILGUN_DEFAULT_SALT, "The input salt as hexadecimal.") |
124 | 125 |
|
125 | 126 | flag.IntVar(&input_reader_buffer_size, "input_reader_buffer_size", 4096, "The input reader buffer size") // default from https://golang.org/src/bufio/bufio.go |
126 | 127 |
|
127 | 128 | flag.StringVar(&output_uri, "output_uri", "stdout", "The output uri") |
128 | 129 | flag.StringVar(&output_compression, "output_compression", "none", "The output compression: "+strings.Join(GO_RAILGUN_COMPRESSION_ALGORITHMS, ", ")) |
129 | | - flag.StringVar(&output_format, "output_format", "", "The output format: "+strings.Join(GO_RAILGUN_FORMATS, ", ")) |
| 130 | + flag.StringVar(&output_format, "output_format", "", "The output format: "+strings.Join(gss.Formats, ", ")) |
130 | 131 | flag.StringVar(&output_passphrase_string, "output_passphrase", "", "The output passphrase.") |
131 | | - flag.StringVar(&output_salt_string, "output_salt", GO_RAILGUN_DEFAULT_SALT, "The output salt as hexidecimal.") |
| 132 | + flag.StringVar(&output_salt_string, "output_salt", GO_RAILGUN_DEFAULT_SALT, "The output salt as hexadecimal.") |
132 | 133 |
|
133 | 134 | flag.StringVar(&dfl_exp, "dfl_exp", "", "Process using dfl expression") |
134 | 135 | flag.StringVar(&dfl_file, "dfl_file", "", "Process using dfl file.") |
@@ -312,23 +313,25 @@ func main() { |
312 | 313 | log.Fatal(errors.Wrap(err, "error dumping dfl_node as yaml to stdout")) |
313 | 314 | } |
314 | 315 | fmt.Println(dfl_node_yaml) |
| 316 | + fmt.Println(dfl_node.Dfl(dfl.DefaultQuotes, true, 0)) |
315 | 317 | } |
316 | 318 |
|
317 | 319 | input_type, err := gss.GetType(input_string, input_format) |
318 | 320 | if err != nil { |
319 | 321 | log.Fatal(errors.Wrap(err, "error geting type for input")) |
320 | 322 | } |
321 | | - |
| 323 | + |
322 | 324 | input_object, err := gss.Deserialize(input_string, input_format, input_header, input_comment, input_type, verbose) |
323 | 325 | if err != nil { |
324 | 326 | log.Fatal(errors.Wrap(err, "error deserializing input using format "+input_format)) |
325 | 327 | } |
326 | | - |
| 328 | + |
327 | 329 | var output interface{} |
328 | 330 | if dfl_node != nil { |
329 | | - o, err := dfl_node.Evaluate(input_object, funcs, []string{"'", "\"", "`"}) |
| 331 | + _, o, err := dfl_node.Evaluate(map[string]interface{}{}, input_object, funcs, []string{"'", "\"", "`"}) |
330 | 332 | if err != nil { |
331 | | - log.Fatal(errors.Wrap(err, "error processing")) |
| 333 | + fmt.Fprintf(os.Stdout, "%+v", err) |
| 334 | + log.Fatal(errors.Wrap(err, "error evaluating filter")) |
332 | 335 | } |
333 | 336 | output = o |
334 | 337 | } else { |
|
0 commit comments