MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / CreateToolConfig

Method CreateToolConfig

agent/app/service/host_tool.go:133–204  ·  view source on GitHub ↗
(req request.HostToolCreate)

Source from the content-addressed store, hash-verified

131}
132
133func (h *HostToolService) CreateToolConfig(req request.HostToolCreate) error {
134 switch req.Type {
135 case constant.Supervisord:
136 fileOp := files.NewFileOp()
137 if !fileOp.Stat(req.ConfigPath) {
138 return buserr.New("ErrConfigNotFound")
139 }
140 cfg, err := ini.Load(req.ConfigPath)
141 if err != nil {
142 return err
143 }
144 service, err := cfg.GetSection("include")
145 if err != nil {
146 return err
147 }
148 targetKey, err := service.GetKey("files")
149 if err != nil {
150 return err
151 }
152 if targetKey != nil {
153 _, err = service.NewKey(";files", targetKey.Value())
154 if err != nil {
155 return err
156 }
157 }
158 supervisorDir := path.Join(global.Dir.DataDir, "tools", "supervisord")
159 includeDir := path.Join(supervisorDir, "supervisor.d")
160 if !fileOp.Stat(includeDir) {
161 if err = fileOp.CreateDir(includeDir, constant.DirPerm); err != nil {
162 return err
163 }
164 }
165 logDir := path.Join(supervisorDir, "log")
166 if !fileOp.Stat(logDir) {
167 if err = fileOp.CreateDir(logDir, constant.DirPerm); err != nil {
168 return err
169 }
170 }
171 includePath := path.Join(includeDir, "*.ini")
172 targetKey.SetValue(includePath)
173 if err = cfg.SaveTo(req.ConfigPath); err != nil {
174 return err
175 }
176
177 serviceNameSet, _ := settingRepo.Get(settingRepo.WithByKey(constant.SupervisorServiceName))
178 if serviceNameSet.ID != 0 {
179 if err = settingRepo.Update(constant.SupervisorServiceName, req.ServiceName); err != nil {
180 return err
181 }
182 } else {
183 if err = settingRepo.Create(constant.SupervisorServiceName, req.ServiceName); err != nil {
184 return err
185 }
186 }
187
188 configPathSet, _ := settingRepo.Get(settingRepo.WithByKey(constant.SupervisorConfigPath))
189 if configPathSet.ID != 0 {
190 if err = settingRepo.Update(constant.SupervisorConfigPath, req.ConfigPath); err != nil {

Callers

nothing calls this directly

Calls 7

StatMethod · 0.95
CreateDirMethod · 0.95
GetMethod · 0.65
WithByKeyMethod · 0.65
UpdateMethod · 0.65
CreateMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected