RebuildImage bool
SourceDir string
TargetOS string
+ Maintainer string
+ Vendor string
}
func parseFlags(args []string) (opts, error) {
opts := opts{
- SourceDir: ".",
- TargetOS: "debian:10",
+ SourceDir: ".",
+ TargetOS: "debian:10",
+ Maintainer: "Arvados Package Maintainers <packaging@arvados.org>",
+ Vendor: "The Arvados Project",
}
flags := flag.NewFlagSet("", flag.ContinueOnError)
flags.StringVar(&opts.PackageVersion, "package-version", opts.PackageVersion, "package version to build/test, like \"1.2.3\"")
flags.StringVar(&opts.PackageDir, "package-dir", opts.PackageDir, "destination directory for new package (default is cwd)")
flags.StringVar(&opts.PackageChown, "package-chown", opts.PackageChown, "desired uid:gid for new package (default is current user:group)")
flags.StringVar(&opts.TargetOS, "target-os", opts.TargetOS, "target operating system vendor:version")
+ flags.StringVar(&opts.Maintainer, "package-maintainer", opts.Maintainer, "maintainer to be listed in package metadata")
+ flags.StringVar(&opts.Vendor, "package-vendor", opts.Vendor, "vendor to be listed in package metadata")
flags.BoolVar(&opts.RebuildImage, "rebuild-image", opts.RebuildImage, "rebuild docker image(s) instead of using existing")
flags.Usage = func() {
fmt.Fprint(flags.Output(), `Usage: arvados-package <subcommand> [options]
image, and be prepared to rebuild that VM image when package-building
slows down (this will happen when new dependencies are introduced).
+ The "build" subcommand, if successful, also runs
+ dpkg-scanpackages to create/replace Packages.gz in the package
+ dir. This enables the "testinstall" subcommand to list the
+ package dir as a source in /etc/apt/sources.*.
+
Options:
`)
flags.PrintDefaults()
if err != nil {
return opts, err
}
- if len(flags.Args()) > 0 {
+ if flags.NArg() != 0 {
return opts, fmt.Errorf("unrecognized command line arguments: %v", flags.Args())
}
if opts.SourceDir == "" {