Skip to content

Commit 8a795c2

Browse files
committed
using package flags (for future flags), codec name case insensitive
1 parent d2e4ee8 commit 8a795c2

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

vcodec.go

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,45 +3,50 @@ package main
33

44
import (
55
"bufio"
6+
"flag"
67
"fmt"
78
"io"
89
"io/ioutil"
910
"log"
1011
"os"
12+
"strings"
1113

1214
"golang.org/x/image/riff"
1315
)
1416

1517
var exitValue = 0
1618

1719
func main() {
18-
if len(os.Args) < 3 {
19-
fmt.Print("Usage: vcodec riff_file codec1 codec2 ...\ncodec name case DO matter\n")
20+
flag.Parse()
21+
if len(flag.Args()) < 2 {
22+
fmt.Print("Usage: vcodec riff_file codec1 codec2 ...\ncodec name is case insensitive\n")
2023
os.Exit(2)
2124
}
25+
//A little trick to handle the "panic", os.Exit doesn't call deferred functions
2226
main2()
23-
fmt.Printf("Exitvalue: %d\n", exitValue)
27+
fmt.Printf("Exit Value: %d\n", exitValue)
2428
os.Exit(exitValue)
2529
}
2630

2731
func main2() {
28-
f, err := os.Open(os.Args[1])
32+
f, err := os.Open(flag.Arg(0))
2933
if err != nil {
3034
log.Fatal(err)
3135
}
3236
defer f.Close()
3337
defer func() {
3438
if r := recover(); r != nil {
3539
fmt.Printf("Codec: %s\n", r)
36-
for _, v := range os.Args[2:] {
37-
if r == v {
40+
codec := fmt.Sprintf("%s", r)
41+
for _, v := range flag.Args()[1:] {
42+
if strings.EqualFold(codec, v) {
3843
exitValue = 1
3944
break
4045
}
4146
}
4247
}
4348
}()
44-
formType, r, err := riff.NewReader(bufio.NewReader(io.LimitReader(f, 16384)))
49+
formType, r, err := riff.NewReader(bufio.NewReader(io.LimitReader(f, 8192)))
4550
if err != nil {
4651
log.Fatal(err)
4752
}

0 commit comments

Comments
 (0)