in internal/mode/indexer/indexer.go [60:125]
func ParseFlags() (*Options, error) {
indexDir := flag.String("index_dir", "", "directory holding index shards.")
pathPrefix := flag.String("path_prefix", "/indexer", "prefix for the routes")
nodeNameFlag := flag.String("node_name", "", "name of the node")
selfURL := flag.String("self_url", "", "the URL to reach the node")
searchURL := flag.String("search_url", "", "the URL to reach the webserver if it differs from self_url")
gitlabURL := flag.String("gitlab_url", "", "gitlab URL")
secretFilePath := flag.String("secret_path", "", "gitlab shared secret file path")
listen := flag.String("listen", ":6060", "listen on this address.")
versionFlag := flag.Bool("version", false, "Print the version and exit")
flag.Parse()
if *versionFlag {
// Version flag will be handled by the Run function
return &Options{
PrintVersion: true,
}, nil
}
if *indexDir == "" {
if flag.NArg() == 0 && flag.NFlag() == 0 && len(os.Args) <= 2 {
// If no arguments are provided, just return the help text
flag.Usage()
return nil, fmt.Errorf("must set -index_dir")
}
err := fmt.Errorf("must set -index_dir")
return nil, err
}
if err := server.CreateIndexDir(*indexDir); err != nil {
return nil, err
}
nodeName := *nodeNameFlag
if nodeName == "" {
hostName, err := os.Hostname()
if err != nil {
return nil, err
}
nodeName = hostName
}
n := node_uuid.NewNodeUUID(*indexDir)
nodeUUID, err := n.Get()
if err != nil {
return nil, err
}
if *searchURL == "" {
*searchURL = *selfURL
}
return &Options{
IndexDir: *indexDir,
PathPrefix: *pathPrefix,
Listen: *listen,
NodeName: nodeName,
NodeUUID: nodeUUID,
SelfURL: *selfURL,
SearchURL: *searchURL,
GitlabURL: *gitlabURL,
SecretFilePath: *secretFilePath,
}, nil
}