コード例 #1
0
ファイル: mirror.go プロジェクト: pacur/pacur
func (m *Mirror) createPacman() (err error) {
	outDir := filepath.Join(m.Root, "pacman")

	err = utils.MkdirAll(outDir)
	if err != nil {
		return
	}

	err = utils.RsyncExt(m.Root, outDir, ".pkg.tar.xz")
	if err != nil {
		return
	}

	if m.Signing {
		err = signing.SignPacman(outDir)
		if err != nil {
			return
		}
	}

	pkgs, err := utils.FindExt(outDir, ".pkg.tar.xz")
	for _, pkg := range pkgs {
		err = utils.Exec(outDir, "repo-add",
			fmt.Sprintf("%s.db.tar.gz", m.Name), pkg)
		if err != nil {
			return
		}
	}

	return
}
コード例 #2
0
ファイル: redhat.go プロジェクト: pacur/pacur
func SignRedhat(dir string) (err error) {
	err = CreateRedhatConf()
	if err != nil {
		return
	}

	pkgs, err := utils.FindExt(dir, ".rpm")
	if err != nil {
		return
	}

	for _, pkg := range pkgs {
		err = utils.Exec("", "expect",
			"-c", "spawn rpm --resign "+pkg,
			"-c", `expect "Enter pass phrase:"`,
			"-c", `send "\r"`,
			"-c", "wait",
			"-c", "interact")
		if err != nil {
			return
		}
	}

	return
}
コード例 #3
0
ファイル: pacman.go プロジェクト: pacur/pacur
func (p *Pacman) clean() (err error) {
	pkgPaths, err := utils.FindExt(p.Pack.Home, ".pkg.tar.xz")
	if err != nil {
		return
	}

	for _, pkgPath := range pkgPaths {
		_ = utils.Remove(pkgPath)
	}

	return
}
コード例 #4
0
ファイル: pacman.go プロジェクト: pacur/pacur
func (p *Pacman) copy() (err error) {
	pkgs, err := utils.FindExt(p.pacmanDir, ".pkg.tar.xz")
	if err != nil {
		return
	}

	for _, pkg := range pkgs {
		err = utils.CopyFile("", pkg, p.Pack.Home, false)
		if err != nil {
			return
		}
	}

	return
}
コード例 #5
0
ファイル: redhat.go プロジェクト: pacur/pacur
func (r *Redhat) clean() (err error) {
	pkgPaths, err := utils.FindExt(r.Pack.Home, ".rpm")
	if err != nil {
		return
	}

	match, ok := constants.ReleasesMatch[r.Pack.FullRelease]
	if !ok {
		err = &BuildError{
			errors.Newf("redhat: Failed to find match for '%s'",
				r.Pack.FullRelease),
		}
		return
	}

	for _, pkgPath := range pkgPaths {
		if strings.Contains(filepath.Base(pkgPath), match) {
			_ = utils.Remove(pkgPath)
		}
	}

	return
}
コード例 #6
0
ファイル: pacman.go プロジェクト: pacur/pacur
func SignPacman(dir string) (err error) {
	pkgs, err := utils.FindExt(dir, ".pkg.tar.xz")
	if err != nil {
		return
	}

	name, err := GetName()
	if err != nil {
		return
	}

	for _, pkg := range pkgs {
		err = utils.Exec(dir, "gpg",
			"--detach-sign",
			"-u", name,
			"--no-armor",
			pkg)
		if err != nil {
			return
		}
	}

	return
}