chore: Add .editorconfig, shfmt, shellcheck and subshell dir changes (#1649)

This commit is contained in:
Mathias Fredriksson 2022-05-27 20:15:19 +03:00 committed by GitHub
parent 1a70298b5c
commit 608eb322a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 191 additions and 103 deletions

16
.editorconfig Normal file
View File

@ -0,0 +1,16 @@
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = tab
[*.{md,json,yaml,tf,tfvars}]
indent_style = space
indent_size = 2
[coderd/database/dump.sql]
indent_style = space
indent_size = 4

View File

@ -44,6 +44,17 @@ jobs:
with:
version: v1.46.0
style-lint-shellcheck:
name: style/lint/shellcheck
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@1.1.0
with:
ignore: node_modules
style-lint-typescript:
name: "style/lint/typescript"
timeout-minutes: 5
@ -133,7 +144,12 @@ jobs:
- name: Install node_modules
run: ./scripts/yarn_install.sh
- run: "make --output-sync -j -B fmt"
- name: Install shfmt
run: go install mvdan.cc/sh/v3/cmd/shfmt@v3.5.0
- run: |
export PATH=${PATH}:$(go env GOPATH)/bin
make --output-sync -j -B fmt
test-go:
name: "test/go"

View File

@ -41,20 +41,37 @@ fmt/terraform: $(wildcard *.tf)
terraform fmt -recursive
.PHONY: fmt/terraform
fmt: fmt/prettier fmt/terraform
fmt/shfmt: $(shell shfmt -f .)
@echo "--- shfmt"
# Only do diff check in CI, errors on diff.
ifdef CI
shfmt -d $(shell shfmt -f .)
else
shfmt -w $(shell shfmt -f .)
endif
fmt: fmt/prettier fmt/terraform fmt/shfmt
.PHONY: fmt
gen: coderd/database/querier.go peerbroker/proto/peerbroker.pb.go provisionersdk/proto/provisioner.pb.go provisionerd/proto/provisionerd.pb.go site/src/api/typesGenerated.ts
install: build
mkdir -p $(INSTALL_DIR)
@echo "--- Copying from bin to $(INSTALL_DIR)"
cp -r ./dist/coder-$(GOOS)_$(GOOS)_$(GOARCH)*/* $(INSTALL_DIR)
@echo "-- CLI available at $(shell ls $(INSTALL_DIR)/coder*)"
.PHONY: install
lint:
lint: lint/shellcheck lint/go
lint/go:
golangci-lint run
.PHONY: lint
.PHONY: lint/go
# Use shfmt to determine the shell files, takes editorconfig into consideration.
lint/shellcheck: $(shell shfmt -f .)
@echo "--- shellcheck"
shellcheck $(shell shfmt -f .)
peerbroker/proto/peerbroker.pb.go: peerbroker/proto/peerbroker.proto
protoc \

View File

@ -8,8 +8,12 @@
# Usage:
# ./generate.sh <database type> <database type> ...
set -euo pipefail
cd "$(dirname "$0")" && cd "$(git rev-parse --show-toplevel)"
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
PROJECT_ROOT=$(cd "$SCRIPT_DIR" && git rev-parse --show-toplevel)
(
cd "$PROJECT_ROOT"
go run ./scripts/auditgen ./coderd/database "$@"
)

View File

@ -8,7 +8,10 @@
set -euo pipefail
cd "$(dirname "$0")"
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
(
cd "$SCRIPT_DIR"
# The logic below depends on the exact version being correct :(
go run github.com/kyleconroy/sqlc/cmd/sqlc@v1.13.0 generate
@ -44,3 +47,4 @@ gofmt -w -r 'Queries -> sqlQuerier' -- *.go
# suggestions.
go mod download
goimports -w queries.sql.go
)

View File

@ -7,7 +7,9 @@
set -euo pipefail
cd "$(dirname "$0")"
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
(
cd "$SCRIPT_DIR"
# if migration name is an empty string exit
[[ -z "${*}" ]] && (echo "Must provide a migration name" && exit 1)
@ -18,3 +20,4 @@ title="$(echo "${@}" | tr "[:upper:]" "[:lower:]" | sed -E -e "s/( |-)/_/g")"
migrate create -ext sql -dir . -seq "$title"
echo "Run \"make gen\" to generate models."
)

View File

@ -2,6 +2,12 @@
set -euo pipefail
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
PROJECT_ROOT=$(cd "$SCRIPT_DIR" && git rev-parse --show-toplevel)
(
cd "${PROJECT_ROOT}"
FILES="$(git ls-files --other --modified --exclude-standard)"
if [[ "$FILES" != "" ]]; then
mapfile -t files <<<"$FILES"
@ -20,5 +26,5 @@ if [[ "$FILES" != "" ]]; then
done
exit 1
fi
)
exit 0

View File

@ -2,8 +2,8 @@
set -euo pipefail
PROJECT_ROOT="$(git rev-parse --show-toplevel)"
cd "${PROJECT_ROOT}"
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
PROJECT_ROOT=$(cd "$SCRIPT_DIR" && git rev-parse --show-toplevel)
echo '== Run "make build" before running this command to build binaries.'
echo '== Without these binaries, workspaces will fail to start!'
@ -19,6 +19,8 @@ export CODER_DEV_ADMIN_PASSWORD=password
# to kill both at the same time. For more details, see:
# https://stackoverflow.com/questions/3004811/how-do-you-run-multiple-programs-in-parallel-from-a-bash-script
(
cd "${PROJECT_ROOT}"
trap 'kill 0' SIGINT
CODERV2_HOST=http://127.0.0.1:3000 INSPECT_XSTATE=true yarn --cwd=./site dev &
go run -tags embed cmd/coder/main.go server --dev --tunnel=true &

View File

@ -1,11 +1,16 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(git rev-parse --show-toplevel)"
codesign -s $AC_APPLICATION_IDENTITY -f -v --timestamp --options runtime $1
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
PROJECT_ROOT=$(cd "$SCRIPT_DIR" && git rev-parse --show-toplevel)
config="$(mktemp -d)/gon.json"
(
cd "${PROJECT_ROOT}"
codesign -s "$AC_APPLICATION_IDENTITY" -f -v --timestamp --options runtime "$1"
config=$(mktemp -d)/gon.json
jq -r --null-input --arg path "$(pwd)/$1" '{
"notarize": [
{
@ -13,5 +18,6 @@ jq -r --null-input --arg path "$(pwd)/$1" '{
"bundle_id": "com.coder.cli"
}
]
}' > $config
gon $config
}' >"$config"
gon "$config"
)

View File

@ -7,7 +7,10 @@
set -euo pipefail
PROJECT_ROOT=$(git rev-parse --show-toplevel)
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
PROJECT_ROOT=$(cd "$SCRIPT_DIR" && git rev-parse --show-toplevel)
(
cd "$PROJECT_ROOT/site"
yarn_flags=(
@ -37,3 +40,4 @@ yarn_flags+=("$@")
echo "+ yarn install ${yarn_flags[*]}"
yarn install "${yarn_flags[@]}"
)

10
site/.editorconfig Normal file
View File

@ -0,0 +1,10 @@
[*]
indent_style = space
indent_size = 2
[*.go]
indent_style = tab
indent_size = unset
[node_modules/**]
ignore = true