(c *cli.Context)
| 200 | } |
| 201 | |
| 202 | func installLinuxService(c *cli.Context) error { |
| 203 | log := logger.CreateLoggerFromContext(c, logger.EnableTerminalLog) |
| 204 | |
| 205 | etPath, err := os.Executable() |
| 206 | if err != nil { |
| 207 | return fmt.Errorf("error determining executable path: %v", err) |
| 208 | } |
| 209 | templateArgs := ServiceTemplateArgs{ |
| 210 | Path: etPath, |
| 211 | } |
| 212 | |
| 213 | // Check if the "no update flag" is set |
| 214 | autoUpdate := !c.IsSet(noUpdateServiceFlag.Name) |
| 215 | |
| 216 | var extraArgsFunc func(c *cli.Context, log *zerolog.Logger) ([]string, error) |
| 217 | if c.NArg() == 0 { |
| 218 | extraArgsFunc = buildArgsForConfig |
| 219 | } else { |
| 220 | extraArgsFunc = buildArgsForToken |
| 221 | } |
| 222 | |
| 223 | extraArgs, err := extraArgsFunc(c, log) |
| 224 | if err != nil { |
| 225 | return err |
| 226 | } |
| 227 | |
| 228 | templateArgs.ExtraArgs = extraArgs |
| 229 | |
| 230 | switch { |
| 231 | case isSystemd(): |
| 232 | log.Info().Msgf("Using Systemd") |
| 233 | err = installSystemd(&templateArgs, autoUpdate, log) |
| 234 | default: |
| 235 | log.Info().Msgf("Using SysV") |
| 236 | err = installSysv(&templateArgs, autoUpdate, log) |
| 237 | } |
| 238 | |
| 239 | if err == nil { |
| 240 | log.Info().Msg("Linux service for cloudflared installed successfully") |
| 241 | } |
| 242 | return err |
| 243 | } |
| 244 | |
| 245 | func buildArgsForConfig(c *cli.Context, log *zerolog.Logger) ([]string, error) { |
| 246 | if err := ensureConfigDirExists(serviceConfigDir); err != nil { |
nothing calls this directly
no test coverage detected