github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/misc/genproto/genproto.go (about)

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"os"
     6  
     7  	"github.com/gnolang/gno/tm2/pkg/amino"
     8  	"github.com/gnolang/gno/tm2/pkg/amino/genproto"
     9  	"github.com/gnolang/gno/tm2/pkg/amino/tests"
    10  	"github.com/gnolang/gno/tm2/pkg/commands"
    11  
    12  	// TODO: move these out.
    13  	"github.com/gnolang/gno/gno.land/pkg/sdk/vm"
    14  	gno "github.com/gnolang/gno/gnovm/pkg/gnolang"
    15  	abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types"
    16  	"github.com/gnolang/gno/tm2/pkg/bft/blockchain"
    17  	"github.com/gnolang/gno/tm2/pkg/bft/consensus"
    18  	ctypes "github.com/gnolang/gno/tm2/pkg/bft/consensus/types"
    19  	"github.com/gnolang/gno/tm2/pkg/bft/mempool"
    20  	btypes "github.com/gnolang/gno/tm2/pkg/bft/types"
    21  	"github.com/gnolang/gno/tm2/pkg/bitarray"
    22  	"github.com/gnolang/gno/tm2/pkg/crypto/ed25519"
    23  	"github.com/gnolang/gno/tm2/pkg/crypto/hd"
    24  	"github.com/gnolang/gno/tm2/pkg/crypto/merkle"
    25  	"github.com/gnolang/gno/tm2/pkg/crypto/multisig"
    26  	"github.com/gnolang/gno/tm2/pkg/sdk"
    27  	"github.com/gnolang/gno/tm2/pkg/sdk/bank"
    28  	"github.com/gnolang/gno/tm2/pkg/std"
    29  )
    30  
    31  func main() {
    32  	cmd := commands.NewCommand(
    33  		commands.Metadata{
    34  			LongHelp: "Generates proto bindings for Amino packages",
    35  		},
    36  		commands.NewEmptyConfig(),
    37  		execGen,
    38  	)
    39  
    40  	cmd.Execute(context.Background(), os.Args[1:])
    41  }
    42  
    43  func execGen(_ context.Context, _ []string) error {
    44  	pkgs := []*amino.Package{
    45  		bitarray.Package,
    46  		merkle.Package,
    47  		abci.Package,
    48  		btypes.Package,
    49  		consensus.Package,
    50  		ctypes.Package,
    51  		mempool.Package,
    52  		ed25519.Package,
    53  		blockchain.Package,
    54  		hd.Package,
    55  		multisig.Package,
    56  		std.Package,
    57  		sdk.Package,
    58  		bank.Package,
    59  		vm.Package,
    60  		gno.Package,
    61  		tests.Package,
    62  	}
    63  
    64  	for _, pkg := range pkgs {
    65  		genproto.WriteProto3Schema(pkg)
    66  		genproto.WriteProtoBindings(pkg)
    67  		genproto.MakeProtoFolder(pkg, "proto")
    68  	}
    69  
    70  	for _, pkg := range pkgs {
    71  		genproto.RunProtoc(pkg, "proto")
    72  	}
    73  
    74  	return nil
    75  }