olliesrv: fix subcommand flag parsing
flags after the subcommand (e.g. start -tcp :564) were silently ignored because flag.Parse() stopped at the first non-flag argument. parse os.Args[2:] after extracting the subcommand from os.Args[1]. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
3b5f494aef
commit
f17774163c
16
main.go
16
main.go
|
|
@ -22,14 +22,14 @@ var mountPath = flag.String("mount", "", "FUSE mount path (default: $HOME/mnt/ol
|
||||||
var tcpAddr = flag.String("tcp", "", "also listen on TCP address (e.g. :564)")
|
var tcpAddr = flag.String("tcp", "", "also listen on TCP address (e.g. :564)")
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
flag.Parse()
|
if len(os.Args) < 2 {
|
||||||
|
|
||||||
if flag.NArg() < 1 {
|
|
||||||
fmt.Fprintln(os.Stderr, "usage: olliesrv <start|fgstart|stop|status|mount>")
|
fmt.Fprintln(os.Stderr, "usage: olliesrv <start|fgstart|stop|status|mount>")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
subcmd := os.Args[1]
|
||||||
|
flag.CommandLine.Parse(os.Args[2:]) //nolint:errcheck
|
||||||
|
|
||||||
switch flag.Arg(0) {
|
switch subcmd {
|
||||||
case "mount":
|
case "mount":
|
||||||
cmdMount()
|
cmdMount()
|
||||||
return
|
return
|
||||||
|
|
@ -44,7 +44,7 @@ func main() {
|
||||||
sockPath := filepath.Join(ns, serviceName)
|
sockPath := filepath.Join(ns, serviceName)
|
||||||
pidPath := filepath.Join(ns, serviceName+".pid")
|
pidPath := filepath.Join(ns, serviceName+".pid")
|
||||||
|
|
||||||
switch flag.Arg(0) {
|
switch subcmd {
|
||||||
case "start":
|
case "start":
|
||||||
if isRunning(sockPath) {
|
if isRunning(sockPath) {
|
||||||
fmt.Println("olliesrv already running")
|
fmt.Println("olliesrv already running")
|
||||||
|
|
@ -73,12 +73,12 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func cmdMount() {
|
func cmdMount() {
|
||||||
if flag.NArg() < 2 {
|
if flag.NArg() < 1 {
|
||||||
fmt.Fprintln(os.Stderr, "usage: olliesrv mount <address> [mountpoint]")
|
fmt.Fprintln(os.Stderr, "usage: olliesrv mount <address> [mountpoint]")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
addr := flag.Arg(1)
|
addr := flag.Arg(0)
|
||||||
mnt := flag.Arg(2)
|
mnt := flag.Arg(1)
|
||||||
if mnt == "" {
|
if mnt == "" {
|
||||||
home, _ := os.UserHomeDir()
|
home, _ := os.UserHomeDir()
|
||||||
mnt = filepath.Join(home, "mnt", addr)
|
mnt = filepath.Join(home, "mnt", addr)
|
||||||
|
|
|
||||||
Reference in New Issue