From 9e5f49020910805842b8fdce9047d35f0a94c9d5 Mon Sep 17 00:00:00 2001 From: OCram85 Date: Mon, 24 Feb 2025 08:59:31 +0100 Subject: [PATCH] add golang setup --- .editorconfig | 1 - .gitea/template | 1 + .gitignore | 7 +++++ .prettierrc.json | 10 ++++++ .vscode/extensions.json | 5 +-- .vscode/settings.json | 2 +- Makefile | 69 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 .prettierrc.json create mode 100644 Makefile diff --git a/.editorconfig b/.editorconfig index 40b3490..f4c35c5 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,7 +8,6 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true - [*.go] indent_style = tab indent_size = 4 diff --git a/.gitea/template b/.gitea/template index b43bf86..69ab732 100644 --- a/.gitea/template +++ b/.gitea/template @@ -1 +1,2 @@ README.md +Makefile diff --git a/.gitignore b/.gitignore index 82f00e6..6db6626 100644 --- a/.gitignore +++ b/.gitignore @@ -7,8 +7,15 @@ data/*.csv # Ignore temp build artifacts /bin/* +/dist/* !bin/.gitkeep # Ignore Pester test result files coverage.xml testResults.xml + +# Ignore NodeJS modules +node_modules + +# Ignore local env setups +.env diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..3867e6d --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "arrowParens": "always", + "bracketSpacing": true, + "printWidth": 116, + "semi": false, + "singleQuote": true, + "trailingComma": "all", + "vueIndentScriptAndStyle": true +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index bb7dca0..6dd8911 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,10 +1,11 @@ { "recommendations": [ "editorconfig.editorconfig", + "esbenp.prettier-vscode", + "golang.go", + "vue.volar", "eamodio.gitlens", "streetsidesoftware.code-spell-checker", - "streetsidesoftware.code-spell-checker-german", "bierner.emojisense", - "ryanluker.vscode-coverage-gutters" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index ed6e551..90fcf83 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -58,7 +58,7 @@ "yaml", "yml" ], - "cSpell.language": "en-US,de-DE", + "cSpell.language": "en-US", "cSpell.customDictionaries": { "project-words": { "name": "project-words", diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c7d9371 --- /dev/null +++ b/Makefile @@ -0,0 +1,69 @@ +.DEFAULT_GOAL := build + +BINARY_NAME := ${REPO_NAME} +LDFLAGS := -s -w + +arkanum-install: + @echo "🤖 Installing required frameworks and runtimes with arkanum..." + @arkanum install golang + @arkanum install nodejs + @echo "🚩 step done." + +install: + @echo "🤖 Installing frontend dependencies...(npm)" + cd web && npm install + @echo "🤖 Install backend dependencies...(golang)" + go mod tidy + @echo "🤖 Install global helpers..." + npm install --global prettier + @echo "🚩 step done." + +lint: + @echo "🤖 Running prettier linter in check mode..." + pretier -c . + +prettier: + @echo "🤖 Running prettier linter in write mode..." + prettier -w . + +clean: + @echo "🤖 Cleaning go cache..." + @go clean + @echo "🤖 Cleanig web / pb_public files..." + @cd web && npm run clean + @echo "🤖 Cleaning dist binaries..." + @rm dist/${BINARY_NAME}-* || echo "Files already removed or not present. Ignore this error." + @echo "🚩 step done." + +build-frontend: + @echo "📦 Building frontend artifacts..." + @cd web && npm run build + @echo "🚩 step done." + +frontend-dev: + @echo "🚀 Starting frontend dev server..." + @cd web && npm run dev + +build-linux: clean build-frontend + @echo "📦 Building linux binary..." + @CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -a -v ldflags= '${LD_FLAGS}' -o dist/${BINARY_NAME}-linux-amd64 . + @echo "🚩 step done." + +build-win: clean build-frontend + @echo "📦 Building windows binary..." + @CGO_ENABLED=0 GOARCH=amd64 GOOS=windows go build -a -v ldflags= '${LD_FLAGS}' -o dist/${BINARY_NAME}-win-amd64 . + @echo "🚩 step done." + +build: build-linux build-win + @ls -lh dist/ + @echo "🏁 done." + +dev: clean build-frontend + @echo "📦 Building linux dev binary..." + @CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -tags dev -v ldflags '${LD_FLAGS}' -o dist/${BINARY_NAME}-dev . + @echo "🚀 Starting dev server..." + dist/${BINARY_NAME}-dev serve --dev --http="0.0.0.0:1313" + +serve: + @echo "🚀 Starting dev server in prod mode..." + dist/${BINARY_NAME}-linux-amd64 serve --http="0.0.0.0:1313"