summaryrefslogtreecommitdiff
path: root/argv.proto
blob: 23054f604d09b436e53a4d9aa1d14a72c0294d27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Copyright 2025 WIT.COM Inc Licensed GPL 3.0

syntax = "proto3";

package argvpb;

import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp
import "google/protobuf/duration.proto"; // for duration

message App {
        string                      APPNAME       = 1;
        string                      VERSION       = 2;
        string                      BUILDTIME     = 3;
}

message Argv {                                          // `autogenpb:marshal` `autogenpb:sort` `autogenpb:nomutex`
        google.protobuf.Timestamp   ctime         = 1;  // when the user tried this autocomplete
        google.protobuf.Duration    duration      = 2;  // time since the last autocomplete
        App                         appInfo       = 3;
        repeated string             args          = 4;  // a copy of os.Args
        repeated string             real          = 5;  // what will really be sent to the application
        string                      subcmd        = 6;  // the subcommand being processed. For "git pull <tab>", cmd would be "pull"
        string                      partial       = 7;  // if the user has only partially inputed something
        repeated string             goargs        = 8;  // what to send to alex flint's go-args for help
        bool                        fast          = 9;  // is autocomplete running quickly?
        string                      stdout        = 10; // all output is loaded here before being sent to the shell
        string                      stderr        = 11; // all output is loaded here before being sent to the shell
}

message Argvs {                                         // `autogenpb:marshal` `autogenpb:sort` `autogenpb:nomutex`
        string                      uuid          = 1;  // `autogenpb:uuid:1e6e765c-0c77-4c81-a622-0d819bfcce9a`
        string                      version       = 2;  // `autogenpb:version:v0.0.3`
        repeated Argv               argvs         = 3;
        string                      filename      = 4;  // `autogenpb:save` -- this enables autogenerated pb.Load() and pb.Save()
}