func()

in pkg/archive/deb.go [140:189]


func (d *DebPackager) installScript(script *InstallScript, c *dagger.Container) (*dagger.Container, []string) {
	newArgs := []string{}

	var templateStr, filename, flag string
	switch script.When {
	case PkgActionPostInstall:
		filename = filenamePostInstall
		flag = flagPostInstall
		templateStr = `
{{ replace .Script "\n" "\n  " }}
            `
	case PkgActionUpgrade:
		filename = filenamePostUpgrade
		flag = flagUpgrade
		templateStr = `
{{ replace .Script "\n" "\n  " }}
            `
	case PkgActionPreRemoval:
		filename = filenamePreRm
		flag = flagPreRm
		templateStr = `
{{ replace .Script "\n" "\n  " }}
            `
	case PkgActionPostRemoval:
		filename = filenamePostRm
		flag = flagPostRm
		templateStr = `
{{ replace .Script "\n" "\n  " }}
            `
	default:
		panic("unrecognized package action: " + fmt.Sprintf("%d", script.When))
	}

	filename = filepath.Join("/build", filename)

	tpl, err := template.New("installScript").Funcs(template.FuncMap{"replace": strings.ReplaceAll}).Parse(templateStr)
	if err != nil {
		panic(err)
	}

	buf := new(bytes.Buffer)
	err = tpl.Execute(buf, script)
	if err != nil {
		panic(err)
	}

	c = c.WithNewFile(filename, buf.String())
	newArgs = append(newArgs, flag, filename)
	return c, newArgs
}