getting ready for CI
This commit is contained in:
		
							parent
							
								
									69c8d45f8f
								
							
						
					
					
						commit
						7a47873be3
					
				
							
								
								
									
										13
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| kind: pipeline | ||||
| name: test-docker-build | ||||
| 
 | ||||
| steps: | ||||
| - name: test-docker-build | ||||
|   image: plugins/docker | ||||
|   settings: | ||||
|     repo: foo/bar | ||||
|     dry_run: true | ||||
|     target: final | ||||
|     tags: | ||||
|       - ${DRONE_COMMIT_SHA} | ||||
|       - ${DRONE_BRANCH} | ||||
							
								
								
									
										28
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| ## lint image | ||||
| ## current as of 2022-01-25 | ||||
| FROM golangci/golangci-lint@sha256:c833decc0e2e1ee64ab8c27074929c94db1ef3e230aaf848a0d9bf7795fe4f44 AS linter | ||||
| 
 | ||||
| RUN mkdir -p /build | ||||
| WORKDIR /build | ||||
| COPY ./ ./ | ||||
| RUN golangci-lint run | ||||
| 
 | ||||
| ## build image: | ||||
| # this is golang:1.17.6-buster as of 2022-01-27 | ||||
| FROM golang@sha256:52a48e0239f4d645b20ac268a60361703afe7feb2df5697fa89f72052cb87a3e AS builder | ||||
| #FROM golang:1.16-buster AS builder | ||||
| 
 | ||||
| ENV DEBIAN_FRONTEND noninteractive | ||||
| RUN apt update && apt install -y make bzip2 | ||||
| 
 | ||||
| RUN mkdir -p /build | ||||
| WORKDIR /build | ||||
| 
 | ||||
| COPY go.mod . | ||||
| COPY go.sum . | ||||
| 
 | ||||
| COPY ./ ./ | ||||
| RUN make lint | ||||
| RUN go mod vendor | ||||
| RUN make | ||||
| RUN tar -c . | bzip2 > /src.tbz2 | ||||
							
								
								
									
										9
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								LICENSE
									
									
									
									
									
								
							| @ -12,3 +12,12 @@ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | ||||
| TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||||
| 
 | ||||
|    0. You just DO WHAT THE FUCK YOU WANT TO. | ||||
| 
 | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
|  | ||||
							
								
								
									
										20
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								Makefile
									
									
									
									
									
								
							| @ -4,16 +4,30 @@ default: run | ||||
| 
 | ||||
| run: compile | ||||
| 	./cmd/mfer/mfer | ||||
| 	./cmd/mfer/mfer gen . | ||||
| 
 | ||||
| $(PROTOC_GEN_GO): | ||||
| 	go get -u github.com/golang/protobuf/protoc-gen-go | ||||
| 
 | ||||
| compile: $(PROTOC_GEN_GO) | ||||
| prereqs: $(PROTOC_GEN_GO) | ||||
| 	which gofumpt && go install -v mvdan.cc/gofumpt@latest | ||||
| 	which golangci-lint && go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@latest | ||||
| 
 | ||||
| compile: prereqs | ||||
| 	cd proto && go generate . | ||||
| 	cd cmd/mfer && go build | ||||
| 
 | ||||
| clean: | ||||
| 	rm -rfv proto/*.pb.go | ||||
| 
 | ||||
| fmt: | ||||
| 	prettier -w . | ||||
| fmt: prereqs | ||||
| 	gofumpt -l -w src cmd | ||||
| 	golangci-lint run --fix | ||||
| 	prettier -w *.json *.md | ||||
| 
 | ||||
| lint: | ||||
| 	golangci-lint run | ||||
| 	sh -c 'test -z "$$(gofmt -l .)"' | ||||
| 
 | ||||
| dockerbuild: | ||||
| 	docker build . | ||||
|  | ||||
| @ -3,7 +3,7 @@ package main | ||||
| import ( | ||||
| 	"os" | ||||
| 
 | ||||
| 	"git.eeqj.de/sneak/mfer/mfer" | ||||
| 	mfer "git.eeqj.de/sneak/mfer/src" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
|  | ||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @ -4,5 +4,7 @@ go 1.16 | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/golang/protobuf v1.5.2 // indirect | ||||
| 	github.com/pterm/pterm v0.12.35 | ||||
| 	github.com/urfave/cli/v2 v2.3.0 | ||||
| 	google.golang.org/protobuf v1.27.1 | ||||
| ) | ||||
|  | ||||
							
								
								
									
										51
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								go.sum
									
									
									
									
									
								
							| @ -1,11 +1,62 @@ | ||||
| github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||
| github.com/MarvinJWendt/testza v0.1.0/go.mod h1:7AxNvlfeHP7Z/hDQ5JtE3OKYT3XFUeLCDE2DQninSqs= | ||||
| github.com/MarvinJWendt/testza v0.2.1/go.mod h1:God7bhG8n6uQxwdScay+gjm9/LnO4D3kkcZX4hv9Rp8= | ||||
| github.com/MarvinJWendt/testza v0.2.8/go.mod h1:nwIcjmr0Zz+Rcwfh3/4UhBp7ePKVhuBExvZqnKYWlII= | ||||
| github.com/MarvinJWendt/testza v0.2.10/go.mod h1:pd+VWsoGUiFtq+hRKSU1Bktnn+DMCSrDrXDpX2bG66k= | ||||
| github.com/MarvinJWendt/testza v0.2.12/go.mod h1:JOIegYyV7rX+7VZ9r77L/eH6CfJHHzXjB69adAhzZkI= | ||||
| github.com/atomicgo/cursor v0.0.1 h1:xdogsqa6YYlLfM+GyClC/Lchf7aiMerFiZQn7soTOoU= | ||||
| github.com/atomicgo/cursor v0.0.1/go.mod h1:cBON2QmmrysudxNBFthvMtN32r3jxVRIvzkUiF/RuIk= | ||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= | ||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= | ||||
| github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= | ||||
| github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= | ||||
| github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= | ||||
| github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/gookit/color v1.4.2 h1:tXy44JFSFkKnELV6WaMo/lLfu/meqITX3iAV52do7lk= | ||||
| github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= | ||||
| github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= | ||||
| github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= | ||||
| github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= | ||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||
| github.com/pterm/pterm v0.12.27/go.mod h1:PhQ89w4i95rhgE+xedAoqous6K9X+r6aSOI2eFF7DZI= | ||||
| github.com/pterm/pterm v0.12.29/go.mod h1:WI3qxgvoQFFGKGjGnJR849gU0TsEOvKn5Q8LlY1U7lg= | ||||
| github.com/pterm/pterm v0.12.30/go.mod h1:MOqLIyMOgmTDz9yorcYbcw+HsgoZo3BQfg2wtl3HEFE= | ||||
| github.com/pterm/pterm v0.12.31/go.mod h1:32ZAWZVXD7ZfG0s8qqHXePte42kdz8ECtRyEejaWgXU= | ||||
| github.com/pterm/pterm v0.12.33/go.mod h1:x+h2uL+n7CP/rel9+bImHD5lF3nM9vJj80k9ybiiTTE= | ||||
| github.com/pterm/pterm v0.12.35 h1:A/vHwDM+WByn0sTPlpL2L6kOTy12xqZuwNFMF/NlA+U= | ||||
| github.com/pterm/pterm v0.12.35/go.mod h1:NjiL09hFhT/vWjQHSj1athJpx6H8cjpHXNAK5bUw8T8= | ||||
| github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= | ||||
| github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= | ||||
| github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= | ||||
| github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= | ||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | ||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= | ||||
| github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= | ||||
| github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= | ||||
| github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= | ||||
| golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20211013075003-97ac67df715c h1:taxlMj0D/1sOAuv/CbSD+MMDof2vbyPTqz5FNYKpXt8= | ||||
| golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||
| golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||
| golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= | ||||
| golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= | ||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | ||||
| google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | ||||
| google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= | ||||
| google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
|  | ||||
| @ -1,8 +0,0 @@ | ||||
| package mfer | ||||
| 
 | ||||
| import "fmt" | ||||
| 
 | ||||
| func Run(Appname, Version, Buildarch string) int { | ||||
| 	fmt.Println("starting") | ||||
| 	return 0 | ||||
| } | ||||
| @ -1,3 +1,3 @@ | ||||
| package proto | ||||
| package mfer | ||||
| 
 | ||||
| //go:generate protoc --go_out=. mf.proto
 | ||||
|  | ||||
							
								
								
									
										67
									
								
								src/mfer.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								src/mfer.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,67 @@ | ||||
| package mfer | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"log" | ||||
| 	"os" | ||||
| 	"path/filepath" | ||||
| 
 | ||||
| 	"github.com/pterm/pterm" | ||||
| 	"github.com/urfave/cli/v2" | ||||
| ) | ||||
| 
 | ||||
| func Run(Appname, Version, Buildarch string) int { | ||||
| 	s, _ := pterm.DefaultBigText.WithLetters(pterm.NewLettersFromString(Appname)).Srender() | ||||
| 	pterm.DefaultCenter.Println(s) // Print BigLetters with the default CenterPrinter
 | ||||
| 
 | ||||
| 	app := &cli.App{ | ||||
| 		Name:  Appname, | ||||
| 		Usage: "Manifest generator", | ||||
| 		Commands: []*cli.Command{ | ||||
| 			{ | ||||
| 				Name:    "generate", | ||||
| 				Aliases: []string{"gen"}, | ||||
| 				Usage:   "Generate manifest file", | ||||
| 				Action: func(c *cli.Context) error { | ||||
| 					return generateManifest(".", "./index.mf") | ||||
| 				}, | ||||
| 				Flags: []cli.Flag{ | ||||
| 					&cli.StringFlag{ | ||||
| 						Name:    "input", | ||||
| 						Value:   ".", | ||||
| 						Aliases: []string{"i"}, | ||||
| 						Usage:   "Specify input directory.", | ||||
| 					}, | ||||
| 					&cli.StringFlag{ | ||||
| 						Name:    "output", | ||||
| 						Value:   "./index.mf", | ||||
| 						Aliases: []string{"o"}, | ||||
| 						Usage:   "Specify output filename", | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	err := app.Run(os.Args) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 		return 1 | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
| 
 | ||||
| func generateManifest(path, outputFilename string) error { | ||||
| 	fmt.Println("generateManifest()") | ||||
| 	walkErr := filepath.Walk(path, func(itemPath string, info os.FileInfo, err error) error { | ||||
| 		fmt.Println(itemPath) | ||||
| 		return nil | ||||
| 	}) | ||||
| 
 | ||||
| 	if walkErr != nil { | ||||
| 		log.Fatal(walkErr) | ||||
| 		return walkErr | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user