// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main /* this parses the command line arguements this enables command line options from other packages like 'gui' and 'log' */ import ( "os" "go.wit.com/lib/gui/prep" ) var argv args type args struct { List *EmptyCmd `arg:"subcommand:list" help:"show the packages"` Walk *WalkCmd `arg:"subcommand:walk" help:"walk the filesystem for new .deb files"` Verify *EmptyCmd `arg:"subcommand:verify" help:"verify the pb is accurate and doesn't have errors"` Incoming *IncomingCmd `arg:"subcommand:incoming" help:"handle the incoming directory"` MakeDists *EmptyCmd `arg:"subcommand:makedists" help:"make debian mirrors/dists files for 'apt update'"` SignRelease *EmptyCmd `arg:"subcommand:release" help:"make & GPG sign the Release files"` Everything *EmptyCmd `arg:"subcommand:everything" help:"do the whole thing needed. nothing more. just everything."` Newest *EmptyCmd `arg:"subcommand:newest" help:"make a list of the newest .deb packages"` DryRun bool `arg:"--dry-run" help:"only show what would be packaged"` Verbose bool `arg:"--verbose" help:"be loud about it"` Force bool `arg:"--force" help:"rebuild everything"` Create bool `arg:"--create" help:"create a new .pb file"` } type EmptyCmd struct { } type WalkCmd struct { Verbose bool `arg:"--verbose" help:"be loud about it"` } type IncomingCmd struct { Force bool `arg:"--force" help:"rebuild everything"` } func (args) Buildtime() (string, string) { return BUILDTIME, VERSION } func (args) Version() string { return ARGNAME + " " + VERSION + " Built on " + BUILDTIME } func (args) Appname() string { return ARGNAME } func (a args) DoAutoComplete(pb *prep.Auto) { base := []string{"oldway", "--dry-run", "--force", "incoming", "walk", "list", "everything", "verify", "newest", "--create", "--verbose"} if pb.Cmd == "" { pb.Autocomplete3(base) } else { pb.SubCommand(pb.Goargs...) } os.Exit(0) }