Compare commits

...

2 Commits

Author SHA1 Message Date
Hedy Li c83306c437
update readme todo list 2021-07-09 14:50:51 +08:00
Hedy Li 8079af3beb
refactor CLI logic and file input support 2021-07-09 14:50:24 +08:00
2 changed files with 36 additions and 13 deletions

View File

@ -2,5 +2,5 @@
todo
- [ ] handle input prompt
- [ ] -i input option
- [ ] --infile
- [x] -i input option
- [x] -f input file

View File

@ -90,28 +90,51 @@ func SpartanParsedURL(u url.URL, input string) bool {
return true
}
func Usage() {
fmt.Fprintln(os.Stderr, `
Usage: sparte [--help] [URL] [-i INPUT] [-f FILE]
--help usage
-i send INPUT to URL
-f send contents of FILE as input to UR
`)
return
}
func main() {
args := os.Args[1:]
if len(args) == 0 {
fmt.Println("do --help for help")
Usage()
return
}
url := args[0]
input := ""
for i, arg := range args {
if arg == "--help" {
fmt.Println("Usage: <program> [--help] [URL]")
Usage()
return
}
if arg == "-i" {
if len(args) < i+2 {
fmt.Println("argument needed for -i")
if arg == "-i" || arg == "-f" {
if len(args) < i+2 || (i==0 && len(args) < i+3) {
fmt.Println("input arument or URL missing")
return
}
if i == 0 {
fmt.Println("try this format instead: <program> URL -i INPUT")
return
url = args[i-1]
if arg == "-i" {
input = args[i+1]
break
}
SpartanURL(args[i-1], args[i+1])
return
// arg must be -f
inputBytes, err := ioutil.ReadFile(args[i+1])
if err != nil {
fmt.Fprintln(os.Stderr, "Error reading file")
os.Exit(1)
}
input = string(inputBytes)
break
// ignoring other args if any
}
}
SpartanURL(args[0], "")
SpartanURL(url, input)
}