47 lines
892 B
Go
47 lines
892 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
var registry *XdccProviderRegistry = nil
|
|
|
|
func init() {
|
|
registry = NewProviderRegistry()
|
|
registry.AddProvider(&XdccEuProvider{})
|
|
}
|
|
|
|
func search(fileName string) {
|
|
printer := NewTablePrinter([]string{"File Name", "Network", "Channel"})
|
|
|
|
res, _ := registry.Search(fileName)
|
|
for _, fileInfo := range res {
|
|
printer.AddRow(Row{fileInfo.Name, fileInfo.Network, fileInfo.Channel})
|
|
}
|
|
|
|
printer.Print()
|
|
}
|
|
|
|
func main() {
|
|
searchCmd := flag.NewFlagSet("foo", flag.ExitOnError)
|
|
fileName := searchCmd.String("f", "", "name of the file to search")
|
|
|
|
if len(os.Args) < 2 {
|
|
fmt.Println("one of the following subcommands is expected: [search, get]")
|
|
os.Exit(1)
|
|
}
|
|
|
|
switch os.Args[1] {
|
|
case "search":
|
|
searchCmd.Parse(os.Args[2:])
|
|
search(*fileName)
|
|
case "get":
|
|
break
|
|
default:
|
|
fmt.Println("no such command: ", os.Args[1])
|
|
os.Exit(1)
|
|
}
|
|
}
|