Files
ragflow/cmd/ragflow_cli.go
Jin Hai b308cd3a02 Update go cli (#13717)
### What problem does this PR solve?

Go cli

### Type of change

- [x] New Feature (non-breaking change which adds functionality)

---------

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-03-24 20:08:36 +08:00

57 lines
1.0 KiB
Go

package main
import (
"fmt"
"os"
"os/signal"
"syscall"
"ragflow/internal/cli"
)
func main() {
// Parse command line arguments (skip program name)
args, err := cli.ParseConnectionArgs(os.Args[1:])
if err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
}
// Show help and exit
if args.ShowHelp {
cli.PrintUsage()
os.Exit(0)
}
// Create CLI instance with parsed arguments
cliApp, err := cli.NewCLIWithArgs(args)
if err != nil {
fmt.Printf("Failed to create CLI: %v\n", err)
os.Exit(1)
}
// Handle interrupt signal
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
go func() {
<-sigChan
cliApp.Cleanup()
os.Exit(0)
}()
// Check if we have a single command to execute
if args.Command != "" {
// Single command mode
if err = cliApp.RunSingleCommand(args.Command); err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
}
} else {
// Interactive mode
if err = cliApp.Run(); err != nil {
fmt.Printf("CLI error: %v\n", err)
os.Exit(1)
}
}
}