package argvpb import ( "fmt" "time" "github.com/google/uuid" "go.wit.com/lib/cobol" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) func Init(dest any, APPNAME string, anyString string, VERSION string) { me = new(AutoType) me.pb = new(Argv) PB = me.pb app := new(App) app.APPNAME = APPNAME app.VERSION = VERSION // // this logic isn't great, but it's what it is right now // // the reason this logic is messy is because cobol is supposed to "guess" // that is the point of the cobol package and I've been using this code here // to test the guesses because it's an easy place to test that code // if BUILDTIME, err := cobol.GetTime(anyString); BUILDTIME != nil { // everyhting is working. BUILDTIME is *time.Time app.BUILDTIME = cobol.Time(BUILDTIME) } else if err == nil { newtime := BUILDTIME.Add(-36 * time.Hour) app.BUILDTIME = cobol.Time(BUILDTIME) fmt.Printf("TIME initAppname() ERR=(%v) anyString=(%v) GetTime.BUILTIME=(%v) app.BUILDTIME=(%v)\n", err, anyString, newtime, app.BUILDTIME) } else { app.BUILDTIME = anyString fmt.Printf("TIME initAppname() ERR=(%v) anyString=(%v) GetTime.BUILTIME=(%v) app.BUILDTIME=(%v)\n", err, anyString, BUILDTIME, app.BUILDTIME) } me.pb.AppInfo = app fakeStdout() me.pb.Uuid = uuid.New().String() // set the start time of the binary now := time.Now() me.pb.Ctime = timestamppb.New(now) // makes sure the application has the // needed functions defined, otherwise dies verifyApplication(dest) // do autocomplete Autocomplete() }