Initial Go project structure
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Gregory Ballantine 2022-09-17 18:16:30 -04:00
parent 26a7ab742e
commit 92153508b3
8 changed files with 105 additions and 3 deletions

3
.gitignore vendored
View File

@ -21,3 +21,6 @@
# Go workspace file
go.work
# Compiled Go binary
mcst

31
.woodpecker.yml Normal file
View File

@ -0,0 +1,31 @@
pipeline:
build_test:
image: golang:1.16
commands:
- go build
test:
image: golang:1.16
commands:
- go test -v ./...
build_release:
image: golang:1.16
commands:
- go mod vendor
- GOOS=linux GOARCH=amd64 go build -ldflags "-X git.metaunix.net/BitGoblin/mcst/cmd.version=${CI_COMMIT_TAG}" -o "dist/mcst-linux-amd64-${CI_COMMIT_TAG}"
- GOOS=windows GOARCH=amd64 go build -ldflags "-X git.metaunix.net/BitGoblin/mcst/cmd.version=${CI_COMMIT_TAG}" -o "dist/mcst-windows-amd64-${CI_COMMIT_TAG}.exe"
when:
event: tag
gitea_release:
image: plugins/gitea-release
settings:
api_key:
from_secret: gitea_api_key
base_url: https://git.metaunix.net
title: "${CI_COMMIT_TAG}"
files:
- dist/mcst-*
when:
event: tag

View File

@ -1,4 +1,4 @@
Copyright (c) <year> <owner>
Copyright (c) 2022 Bit Goblin
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

View File

@ -1,3 +1,18 @@
# mcst
# MCST
Bit Goblin minecraft server tool
Bit Goblin minecraft server management tool
## Installation
Build dependencies:
* go
* make
To install dependencies on Ubuntu: `apt install golang make`
To install dependencies on Red Hat/AlmaLinux: `dnf install go make`
To install MCST as a system utility: `make build && sudo make install`
## Uninstallation
To uninstall MCST (if it was installed through make): `sudo make uninstall`

25
cmd/root.go Normal file
View File

@ -0,0 +1,25 @@
package cmd
import (
"log"
"os"
"github.com/spf13/cobra"
)
var rootCmd = &cobra.Command{
Use: "mcst",
Short: "MCST is a tool to manage Minecraft Java edition servers.",
Long: `A flexible yet user-friendly tool to manage Minecraft Java edition server.
Source code available at https://git.metaunix.net/BitGoblin/mcst`,
Run: func(cmd *cobra.Command, args []string) {
log.Printf("This is a test.")
},
}
func Start() {
if err := rootCmd.Execute(); err != nil {
log.Println(err)
os.Exit(1)
}
}

9
go.mod Normal file
View File

@ -0,0 +1,9 @@
module git.metaunix.net/BitGoblin/mcst
go 1.18
require (
github.com/inconshreveable/mousetrap v1.0.0 // indirect
github.com/spf13/cobra v1.5.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
)

10
go.sum Normal file
View File

@ -0,0 +1,10 @@
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU=
github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=

9
mcst.go Normal file
View File

@ -0,0 +1,9 @@
package main
import (
"git.metaunix.net/BitGoblin/mcst/cmd"
)
func main() {
cmd.Start()
}