MCPcopy Create free account
hub / github.com/celer-pkg/celer / doClean

Method doClean

cmds/cmd_clean.go:243–304  ·  view source on GitHub ↗
(port configs.Port)

Source from the content-addressed store, hash-verified

241}
242
243func (c *cleanCmd) doClean(port configs.Port) error {
244 // Ignore already cleaned ports.
245 if slices.Contains(c.cleaned, port.NameVersion()+expr.If(port.DevDep || port.HostDep, " [dev]", "")) {
246 return nil
247 }
248
249 // Remove build cache for dev build or platform build.
250 matchedConfig := port.MatchedConfig
251 if port.DevDep || port.HostDep {
252 devBuildDir := filepath.Join(filepath.Dir(matchedConfig.PortConfig.BuildDir), matchedConfig.PortConfig.HostName+"-dev")
253 if err := os.RemoveAll(devBuildDir); err != nil {
254 return err
255 }
256 } else {
257 if err := os.RemoveAll(matchedConfig.PortConfig.BuildDir); err != nil {
258 return err
259 }
260 }
261
262 // Remove build logs current platform build.
263 if err := port.RemoveLogs(); err != nil {
264 return err
265 }
266
267 // Clean dependencies.
268 if c.recursive {
269 for _, nameVersion := range matchedConfig.Dependencies {
270 var depPort configs.Port
271 depPort.HostDep = port.DevDep || port.HostDep
272 if err := depPort.Init(c.celer, nameVersion); err != nil {
273 return err
274 }
275
276 if err := c.doClean(depPort); err != nil {
277 return err
278 }
279 }
280
281 for _, nameVersion := range matchedConfig.DevDependencies {
282 // Same name, version as parent and they are booth build with native toolchain, so skip.
283 if (port.DevDep || port.HostDep) && port.NameVersion() == nameVersion {
284 continue
285 }
286
287 var devDepPort configs.Port
288 devDepPort.DevDep = true
289 devDepPort.HostDep = port.DevDep || port.HostDep
290 if err := devDepPort.Init(c.celer, nameVersion); err != nil {
291 return err
292 }
293
294 if err := c.doClean(devDepPort); err != nil {
295 return err
296 }
297 }
298 }
299
300 c.cleaned = append(c.cleaned, port.NameVersion()+expr.If(port.DevDep || port.HostDep, " [dev]", ""))

Callers 1

cleanMethod · 0.95

Calls 5

InitMethod · 0.95
IfFunction · 0.92
PrintfFunction · 0.92
NameVersionMethod · 0.80
RemoveLogsMethod · 0.80

Tested by

no test coverage detected