// 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' */ var argv args type args struct { Build *BuildCmd `arg:"subcommand:build" help:"build and install things"` Upgrade *UpgradeCmd `arg:"subcommand:upgrade" help:"apt upgrade packages installed from mirrors.wit.com"` Git *GitCmd `arg:"subcommand:git" help:"git stuff"` Publish *PublishCmd `arg:"subcommand:publish" help:"publish packages"` ListPkgs *EmptyCmd `arg:"subcommand:list" help:"list all the packages on mirrors.wit.com"` Clone *CloneCmd `arg:"subcommand:go-clone" help:"go-clone from a gowebd repomap"` Linux *LinuxCmd `arg:"subcommand:linux" help:"helpful linux things"` Zoo *EmptyCmd `arg:"subcommand:zoo" help:"WIT Private Cloud info"` PB *ProtoCmd `arg:"subcommand:pb" help:"example .pb files"` Droplet *DropletCmd `arg:"subcommand:droplet" help:"do things on virtual machines"` Test *TestCmd `arg:"subcommand:test" help:"test things"` RepoMap string `arg:"--repomap" help:"location of the repomap"` DryRun bool `arg:"--dry-run" help:"only show what would be packaged"` Install bool `arg:"--install" help:"go install the binaries first"` Verbose bool `arg:"--verbose" help:"be loud about it"` Force bool `arg:"--force" help:"rebuild everything"` All bool `arg:"--all" help:"show everything"` Recursive bool `arg:"--recursive" help:"go-clone --recursive"` WITCOM bool `arg:"--witcom" help:"add the GPL header"` Max int32 `arg:"--max" help:"stop building after max builds"` } type BuildCmd struct { Debian *DebianCmd `arg:"subcommand:deb" help:"build missing .deb packages"` MacBuild *EmptyCmd `arg:"subcommand:macos" help:"build macos packages"` Install *InstallCmd `arg:"subcommand:install" help:"run make install in each repo"` } type ProtoCmd struct { Identify string `arg:"--identify" help:"identify a .pb file"` } type DropletCmd struct { Trim *EmptyCmd `arg:"subcommand:trim" help:"clean out stuff and power off vm"` } type TestCmd struct { Version *EmptyCmd `arg:"subcommand:version" help:"test with cmd --version"` Copy bool `arg:"--copy" help:"re-copy argv.template.go"` } type LinuxCmd struct { Rdate *EmptyCmd `arg:"subcommand:rdate" help:"rdate: check the time from the network"` Reboots *EmptyCmd `arg:"subcommand:reboots" help:"show reboots"` Dmesg *EmptyCmd `arg:"subcommand:dmesg" help:"show last dmesg"` } type DebianCmd struct { All bool `arg:"--all" help:"build everything again"` DryRun bool `arg:"--dry-run" help:"only show what would be packaged"` Release bool `arg:"--release" help:"use go-deb --release"` Verbose bool `arg:"--verbose" help:"be loud about it"` Force bool `arg:"--force" help:"force devel .deb builds into /incoming"` Priv bool `arg:"--private" help:"build private repos"` Arch string `arg:"--arch" help:"what arch"` } type CloneCmd struct { Check *EmptyCmd `arg:"subcommand:check" help:"check urls against the repomap"` Fix *EmptyCmd `arg:"subcommand:fix" help:"fix urls from the repomap"` Repomap *EmptyCmd `arg:"subcommand:repomap" help:"make updated repomap"` DryRun bool `arg:"--dry-run" help:"show what has not yet come to pass"` Verbose bool `arg:"--verbose" help:"be loud about it"` } type UpgradeCmd struct { All bool `arg:"--all" help:"show all the packages"` Force bool `arg:"--force" help:"force un-install and re-install each package"` } type PublishCmd struct { All bool `arg:"--all" help:"show all the packages"` Gomod bool `arg:"--keep-gomod" help:"don't really do anything"` } type InstallCmd struct { DryRun bool `arg:"--dry-run" help:"show what has not yet come to pass"` Verbose bool `arg:"--verbose" help:"be loud about it"` } type GitCmd struct { Log *EmptyCmd `arg:"subcommand:log" help:"git log"` Who *EmptyCmd `arg:"subcommand:who" help:"git who"` Tag *EmptyCmd `arg:"subcommand:tag" help:"show tags"` Pull *EmptyCmd `arg:"subcommand:pull" help:"pull the wit standard paths"` Push *EmptyCmd `arg:"subcommand:push" help:"push the wit standard paths"` Template string `arg:"--template" help:"create a new reup from a tempalte"` Create string `arg:"--create" help:"create new repo"` Edit string `arg:"--edit" help:"edit the subject of the last commit"` ChopHEAD int `arg:"--chop-head-off" help:"remove the last commit (HEAD-1)"` DeleteUntracked bool `arg:"--delete-untracked" help:"delete the untracked files"` } type EmptyCmd struct { }