MCPcopy Create free account
hub / github.com/ddev/ddev / createAddonManifest

Function createAddonManifest

pkg/ddevapp/addons.go:1425–1454  ·  view source on GitHub ↗

createAddonManifest creates a manifest file for tracking addon installation

(app *DdevApp, addonName, repository, version string, desc InstallDesc)

Source from the content-addressed store, hash-verified

1423
1424// createAddonManifest creates a manifest file for tracking addon installation
1425func createAddonManifest(app *DdevApp, addonName, repository, version string, desc InstallDesc) error {
1426 manifest := AddonManifest{
1427 Name: addonName,
1428 Repository: repository,
1429 Version: version,
1430 Dependencies: desc.Dependencies,
1431 InstallDate: time.Now().Format(time.RFC3339),
1432 ProjectFiles: desc.ProjectFiles,
1433 GlobalFiles: desc.GlobalFiles,
1434 RemovalActions: desc.RemovalActions,
1435 }
1436
1437 manifestFile := app.GetConfigPath(fmt.Sprintf("%s/%s/manifest.yaml", AddonMetadataDir, addonName))
1438 manifestData, err := yaml.Marshal(manifest)
1439 if err != nil {
1440 return fmt.Errorf("error marshaling manifest data: %v", err)
1441 }
1442
1443 err = os.MkdirAll(filepath.Dir(manifestFile), 0755)
1444 if err != nil {
1445 return fmt.Errorf("error creating manifest directory: %v", err)
1446 }
1447
1448 err = os.WriteFile(manifestFile, manifestData, 0644)
1449 if err != nil {
1450 return fmt.Errorf("error writing manifest file: %v", err)
1451 }
1452
1453 return nil
1454}
1455
1456// InstallAddonFromTarball handles complete installation process for tarball-based addons
1457func InstallAddonFromTarball(app *DdevApp, tarballURL, downloadedRelease, repository string, verbose bool) error {

Callers 1

Calls 3

FormatMethod · 0.80
GetConfigPathMethod · 0.80
ErrorfMethod · 0.80

Tested by

no test coverage detected