MCPcopy Create free account
hub / github.com/linuxkit/linuxkit / systemInitCmd

Function systemInitCmd

pkg/init/cmd/service/system_init.go:60–187  ·  view source on GitHub ↗
(ctx context.Context, args []string)

Source from the content-addressed store, hash-verified

58}
59
60func systemInitCmd(ctx context.Context, args []string) {
61 invoked := filepath.Base(os.Args[0])
62 flags := flag.NewFlagSet("system-init", flag.ExitOnError)
63 flags.Usage = func() {
64 fmt.Printf("USAGE: %s system-init\n\n", invoked)
65 fmt.Printf("Options:\n")
66 flags.PrintDefaults()
67 }
68
69 sock := flags.String("sock", defaultSocket, "Path to containerd socket")
70 path := flags.String("path", defaultServicesPath, "Path to service configs")
71 binary := flags.String("containerd", defaultContainerd, "Path to containerd")
72
73 if err := flags.Parse(args); err != nil {
74 log.Fatal("Unable to parse args")
75 }
76 args = flags.Args()
77
78 if len(args) != 0 {
79 fmt.Println("Unexpected argument")
80 flags.Usage()
81 os.Exit(1)
82 }
83
84 // remove (unlikely) old containerd socket
85 _ = os.Remove(*sock)
86
87 // look for containerd options
88 var ctrdArgs []string
89 var (
90 stderr io.Writer = os.Stderr
91 stdout io.Writer = os.Stdout
92 )
93 if b, err := os.ReadFile(containerdOptsFile); err == nil {
94 config, err := toml.LoadBytes(b)
95 if err != nil {
96 log.Fatalf("error reading toml file %s: %v", containerdOptsFile, err)
97 }
98 if config != nil {
99 // did we have any CLI opts?
100 cliOptsLine := config.Get("cliopts")
101 if cliOptsLine != nil {
102 ctrdArgs = strings.Fields(cliOptsLine.(string))
103 }
104 // stderr?
105 stderrLine := config.Get("stderr")
106 if stderrLine != nil {
107 stderr, err = getWriter(stderrLine.(string))
108 if err != nil {
109 log.Fatal(err)
110 }
111 }
112 stdoutLine := config.Get("stdout")
113 if stdoutLine != nil {
114 stdout, err = getWriter(stdoutLine.(string))
115 if err != nil {
116 log.Fatal(err)
117 }

Callers 1

mainFunction · 0.85

Calls 9

getWriterFunction · 0.85
cleanupTaskFunction · 0.85
startFunction · 0.85
RemoveMethod · 0.80
WaitMethod · 0.80
ErrorMethod · 0.80
DeleteMethod · 0.80
StringMethod · 0.65
GetMethod · 0.45

Tested by

no test coverage detected