{"record":{"id":"d5166c6ff9ea08d9","repo":"chenhg5/cc-connect","slug":"missing-value-for-s","errorCode":null,"errorMessage":"missing value for %s","messagePattern":"missing value for (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/cc-connect/daemon.go","lineNumber":196,"sourceCode":"\t\t\t}\n\t\t\tcfg.WorkDir = filepath.Dir(value)\n\t\t\ti = next\n\t\tcase strings.HasPrefix(arg, \"--config=\"):\n\t\t\tcfg.WorkDir = filepath.Dir(strings.TrimPrefix(arg, \"--config=\"))\n\t\tcase strings.HasPrefix(arg, \"-config=\"):\n\t\t\tcfg.WorkDir = filepath.Dir(strings.TrimPrefix(arg, \"-config=\"))\n\t\tdefault:\n\t\t\treturn daemon.Config{}, false, fmt.Errorf(\"unknown flag: %s\", arg)\n\t\t}\n\t}\n\n\treturn cfg, force, nil\n}\n\nfunc daemonInstallFlagValue(args []string, index int, flagName string) (string, int, error) {\n\tnext := index + 1\n\tif next >= len(args) {\n\t\treturn \"\", index, fmt.Errorf(\"missing value for %s\", flagName)\n\t}\n\treturn args[next], next, nil\n}\n\n// isTruthyEnv accepts the conventional opt-in values for boolean env vars.\n// Anything else, including \"0\" / \"false\" / \"\" / unset, is treated as false.\nfunc isTruthyEnv(v string) bool {\n\tswitch strings.ToLower(strings.TrimSpace(v)) {\n\tcase \"1\", \"true\", \"yes\", \"on\":\n\t\treturn true\n\t}\n\treturn false\n}\n\n// ── uninstall ───────────────────────────────────────────────\n\nfunc daemonUninstall() {\n\tmgr, err := daemon.NewManager()","sourceCodeStart":178,"sourceCodeEnd":214,"githubUrl":"https://github.com/chenhg5/cc-connect/blob/4000b2338aa6e850c99df54f8b0ed6ed7460b401/cmd/cc-connect/daemon.go#L178-L214","documentation":"daemonInstallFlagValue reads the value that follows a space-separated flag. If the flag is the last token on the command line (index+1 beyond len(args)) there is no value to consume, so this error is returned for the given flagName. It guards flags like --config, --log-max-size, and --work-dir against being used without an operand.","triggerScenarios":"`cc-connect daemon install --work-dir` or `--config` given as the final argument, e.g. `daemon install --config` (nothing after it), or a quoted/escaped value that ends up empty in shell scripts.","commonSituations":"Shell scripts where a variable like $CONFIG_PATH is empty or unset, commands copied without the value, or line-continuation mistakes in multi-line shell commands.","solutions":["Provide the value after the flag: --work-dir /path/to/dir","Verify the shell variable supplying the value is non-empty before invoking the command","Use the equals form (--work-dir=/path) to make the value explicit"],"exampleFix":"// before\ncc-connect daemon install --work-dir \"$WORK_DIR\"   # WORK_DIR empty\n// after\n: \"${WORK_DIR:?WORK_DIR must be set}\" && cc-connect daemon install --work-dir \"$WORK_DIR\"","handlingStrategy":"validation","validationCode":": \"${WORK_DIR:?missing value for --work-dir}\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Prefer --flag=value form so empty values are visible","Check shell variables are non-empty before invoking","Beware line continuations that swallow the final value"],"tags":["cli","daemon","missing-argument"],"backgroundTag":"missing-cli-argument","analyzedSha":"4000b2338aa6e850c99df54f8b0ed6ed7460b401","analyzedAt":"2026-09-06T11:45:09.575Z","contentChangedAt":"2026-09-06T11:45:09.575Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}