MCPcopy Index your code
hub / github.com/cloudflare/cloudflared / installLinuxService

Function installLinuxService

cmd/cloudflared/linux_service.go:202–243  ·  view source on GitHub ↗
(c *cli.Context)

Source from the content-addressed store, hash-verified

200}
201
202func 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
245func buildArgsForConfig(c *cli.Context, log *zerolog.Logger) ([]string, error) {
246 if err := ensureConfigDirExists(serviceConfigDir); err != nil {

Callers

nothing calls this directly

Calls 5

CreateLoggerFromContextFunction · 0.92
isSystemdFunction · 0.85
installSystemdFunction · 0.85
installSysvFunction · 0.85
ErrorfMethod · 0.80

Tested by

no test coverage detected