// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "go.wit.com/lib/protobuf/argvpb" "go.wit.com/lib/protobuf/filepb" "go.wit.com/log" ) func subCommand() (string, error) { // Standard subcommand handling starts here var s string var err error if argv.Upgrade != nil { doUpgrade() argvpb.GoodExit("") } if argv.Linux != nil { if argv.Linux.Rdate != nil { s, err = doRdate() } else { setTerminalTitle("pinging google", "ping", []string{"google.com"}) } } if argv.Build != nil { s, err = doBuild() } if argv.Test != nil { s, err = doTest() } if argv.Git != nil { initMachine() s, err = doGit() } if argv.PB != nil { pbuuid, pbver, pberr := filepb.IdentifyPB(argv.PB.Identify) if pberr == nil { log.Info("pb version is:", pbver) log.Info("pb uuid is:", pbuuid) s = "pb identify worked" } else { s = "identify failed" err = pberr } } if argv.Clone != nil { doClone() argvpb.GoodExit("") } if argv.WITCOM { doWITCOM() argvpb.GoodExit("") } if argv.Clone != nil { doClone() argvpb.GoodExit("") } if argv.WITCOM { doWITCOM() argvpb.GoodExit("") } if argv.Upgrade != nil { doUpgrade() } if argv.Droplet != nil { s, err = doDroplet() } if argv.Publish != nil { if err := doPublish(); err != nil { argvpb.BadExit("doPublish failed", err) } argvpb.GoodExit("") } if argv.Zoo != nil { if areSuperuser() { exitOnErrorRealtime([]string{"journalctl", "-n", "100", "-f", "_SYSTEMD_UNIT=zood.service"}) } argvpb.GoodExit("do something here") } return s, err }