func Example_genSourcePackage() { pkg := deb.NewPackage("testpkg", "0.0.2", "me <*****@*****.**>", "Dummy package for doing nothing\n") build := debgen.NewBuildParams() build.IsRmtemp = false debgen.ApplyGoDefaults(pkg) spkg := deb.NewSourcePackage(pkg) err := build.Init() if err != nil { log.Fatalf("Error initializing dirs: %v", err) } spgen := debgen.NewSourcePackageGenerator(spkg, build) spgen.ApplyDefaultsPureGo() sourcesDestinationDir := pkg.Name + "_" + pkg.Version sourceDir := ".." sourcesRelativeTo := debgen.GetGoPathElement(sourceDir) spgen.OrigFiles, err = debgen.GlobForSources(sourcesRelativeTo, sourceDir, debgen.GlobGoSources, sourcesDestinationDir, []string{build.TmpDir, build.DestDir}) if err != nil { log.Fatalf("Error resolving sources: %v", err) } err = spgen.GenerateAllDefault() if err != nil { log.Fatalf("Error building source: %v", err) } // Output: // }
func main() { name := "debgen-dev" log.SetPrefix("[" + name + "] ") //set to empty strings because they're being overridden pkg := deb.NewPackage("", "", "", "") build := debgen.NewBuildParams() debgen.ApplyGoDefaults(pkg) fs := cmdutils.InitFlags(name, pkg, build) fs.StringVar(&pkg.Architecture, "arch", "all", "Architectures [any,386,armhf,amd64,all]") ddpkg := deb.NewDevPackage(pkg) var sourceDir string var glob string var sourcesRelativeTo string var sourcesDestinationDir string fs.StringVar(&sourceDir, "sources", build.WorkingDir, "source dir") fs.StringVar(&glob, "sources-glob", debgen.GlobGoSources, "Glob for inclusion of sources") fs.StringVar(&sourcesRelativeTo, "sources-relative-to", "", "Sources relative to (it will assume relevant gopath element, unless you specify this)") fs.StringVar(&sourcesDestinationDir, "sources-destination", debgen.DevGoPathDefault, "Destination dir for sources to be installed") err := cmdutils.ParseFlags(name, pkg, fs) if err != nil { log.Fatalf("%v", err) } if sourcesRelativeTo == "" { sourcesRelativeTo = debgen.GetGoPathElement(sourceDir) } mappedFiles, err := debgen.GlobForSources(sourcesRelativeTo, sourceDir, glob, sourcesDestinationDir, []string{build.TmpDir, build.DestDir}) if err != nil { log.Fatalf("Error resolving sources: %v", err) } err = build.Init() if err != nil { log.Fatalf("Error creating build directories: %v", err) } err = debgen.GenDevArtifact(ddpkg, build, mappedFiles) if err != nil { log.Fatalf("Error building -dev: %v", err) } }
func main() { name := "debgen-source" log.SetPrefix("[" + name + "] ") //set to empty strings because they're being overridden pkg := deb.NewPackage("", "", "", "") build := debgen.NewBuildParams() debgen.ApplyGoDefaults(pkg) fs := cmdutils.InitFlags(name, pkg, build) fs.StringVar(&pkg.Architecture, "arch", "all", "Architectures [any,386,armhf,amd64,all]") var sourceDir string var glob string var sourcesRelativeTo string fs.StringVar(&sourceDir, "sources", ".", "source dir") fs.StringVar(&glob, "sources-glob", debgen.GlobGoSources, "Glob for inclusion of sources") fs.StringVar(&sourcesRelativeTo, "sources-relative-to", "", "Sources relative to (it will assume relevant gopath element, unless you specify this)") err := cmdutils.ParseFlags(name, pkg, fs) if err != nil { log.Fatalf("%v", err) } err = build.Init() if err != nil { log.Fatalf("Error creating build directories: %v", err) } if sourcesRelativeTo == "" { sourcesRelativeTo = debgen.GetGoPathElement(sourceDir) } spkg := deb.NewSourcePackage(pkg) sourcesDestinationDir := pkg.Name + "_" + pkg.Version spgen := debgen.NewSourcePackageGenerator(spkg, build) spgen.OrigFiles, err = debgen.GlobForSources(sourcesRelativeTo, sourceDir, glob, sourcesDestinationDir, []string{build.TmpDir, build.DestDir}) if err != nil { log.Fatalf("Error resolving sources: %v", err) } err = spgen.GenerateAllDefault() if err != nil { log.Fatalf("%v", err) } }
func main() { name := "debgen-changelog" log.SetPrefix("[" + name + "] ") //set to empty strings because they're being overridden pkg := deb.NewPackage("", "", "", "") build := debgen.NewBuildParams() debgen.ApplyGoDefaults(pkg) fs := cmdutils.InitFlags(name, pkg, build) fs.StringVar(&pkg.Architecture, "arch", "all", "Architectures [any,386,armhf,amd64,all]") var entry string fs.StringVar(&entry, "entry", "", "Changelog entry data") err := cmdutils.ParseFlags(name, pkg, fs) if err != nil { log.Fatalf("%v", err) } if entry == "" { log.Fatalf("Error: --entry is a required flag") } filename := filepath.Join(build.ResourcesDir, "debian", "changelog") templateVars := debgen.NewTemplateData(pkg) templateVars.ChangelogEntry = entry err = os.MkdirAll(filepath.Join(build.ResourcesDir, "debian"), 0777) if err != nil { log.Fatalf("Error making dirs: %v", err) } _, err = os.Stat(filename) if os.IsNotExist(err) { tpl, err := template.New("template").Parse(debgen.TemplateChangelogInitial) if err != nil { log.Fatalf("Error parsing template: %v", err) } //create .. f, err := os.Create(filename) if err != nil { log.Fatalf("Error creating file: %v", err) } defer f.Close() err = tpl.Execute(f, templateVars) if err != nil { log.Fatalf("Error executing template: %v", err) } err = f.Close() if err != nil { log.Fatalf("Error closing written file: %v", err) } } else if err != nil { log.Fatalf("Error reading existing changelog: %v", err) } else { tpl, err := template.New("template").Parse(debgen.TemplateChangelogAdditionalEntry) if err != nil { log.Fatalf("Error parsing template: %v", err) } //append.. f, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0666) if err != nil { log.Fatalf("Error opening file: %v", err) } defer f.Close() err = tpl.Execute(f, templateVars) if err != nil { log.Fatalf("Error executing template: %v", err) } err = f.Close() if err != nil { log.Fatalf("Error closing written file: %v", err) } } }
func main() { name := "debgen-deb" log.SetPrefix("[" + name + "] ") //set to empty strings because they're being overridden pkg := deb.NewPackage("", "", "", "") build := debgen.NewBuildParams() debgen.ApplyGoDefaults(pkg) fs := cmdutils.InitFlags(name, pkg, build) var binDir string var resourcesDir string fs.StringVar(&binDir, "binaries", "", "directory containing binaries for each architecture. Directory names should end with the architecture") fs.StringVar(&pkg.Architecture, "arch", "any", "Architectures [any,386,armhf,amd64,all]") fs.StringVar(&resourcesDir, "resources", "", "directory containing resources for this platform") err := cmdutils.ParseFlags(name, pkg, fs) if err != nil { log.Fatalf("%v", err) } err = build.Init() if err != nil { log.Fatalf("%v", err) } //log.Printf("Resources: %v", build.Resources) // TODO determine this platform //err = bpkg.Build(build, debgen.GenBinaryArtifact) artifacts, err := deb.NewDebWriters(pkg) if err != nil { log.Fatalf("%v", err) } for arch, artifact := range artifacts { dgen := debgen.NewDebGenerator(artifact, build) err = filepath.Walk(resourcesDir, func(path string, info os.FileInfo, err2 error) error { if info != nil && !info.IsDir() { rel, err := filepath.Rel(resourcesDir, path) if err == nil { dgen.OrigFiles[rel] = path } return err } return nil }) if err != nil { log.Fatalf("%v", err) } archBinDir := filepath.Join(binDir, string(arch)) err = filepath.Walk(archBinDir, func(path string, info os.FileInfo, err2 error) error { if info != nil && !info.IsDir() { rel, err := filepath.Rel(binDir, path) if err == nil { dgen.OrigFiles[rel] = path } return err } return nil }) err = dgen.GenerateAllDefault() if err != nil { log.Fatalf("Error building for '%s': %v", arch, err) } } }