mirror of
https://github.com/sorenisanerd/gotty.git
synced 2024-12-22 23:17:29 +00:00
29c20dca06
Now we can launch Chrome from vscode and also set breakpoints and have them be respected. Work still to be done: The "Launch Chrome" task should compile the typescript stuff. It takes too long to rebuild the typescript stuff. It is bothersome during development. If we can work around that with webpack, that's great. If generating the gotty bundle is what makes it all time consuming, we should skip the bundle generation for development and change the index.html to point to a not-bundled version. Partially fixes #3
92 lines
2.9 KiB
Makefile
92 lines
2.9 KiB
Makefile
OUTPUT_DIR = ./builds
|
|
GIT_COMMIT = `git rev-parse HEAD | cut -c1-7`
|
|
VERSION = $(shell git describe --tags)
|
|
BUILD_OPTIONS = -ldflags "-X main.Version=$(VERSION)"
|
|
|
|
ifeq ($(DEV), 1)
|
|
BUILD_OPTIONS += -tags dev
|
|
WEBPACK_MODE = development
|
|
else
|
|
WEBPACK_MODE = production
|
|
endif
|
|
|
|
export CGO_ENABLED=0
|
|
|
|
gotty: main.go assets server/*.go webtty/*.go backend/*.go Makefile
|
|
go build ${BUILD_OPTIONS}
|
|
|
|
docker:
|
|
docker build . -t gotty-bash:$(VERSION)
|
|
|
|
.PHONY: all docker assets
|
|
assets: bindata/static/js/gotty.js.map \
|
|
bindata/static/js/gotty.js \
|
|
bindata/static/index.html \
|
|
bindata/static/icon.svg \
|
|
bindata/static/favicon.ico \
|
|
bindata/static/css/index.css \
|
|
bindata/static/css/xterm.css \
|
|
bindata/static/css/xterm_customize.css \
|
|
bindata/static/manifest.json \
|
|
bindata/static/icon_192.png
|
|
|
|
all: gotty
|
|
|
|
bindata/static bindata/static/css bindata/static/js:
|
|
mkdir -p $@
|
|
|
|
bindata/static/%: resources/% | bindata/static/css
|
|
cp "$<" "$@"
|
|
|
|
bindata/static/css/%.css: resources/%.css | bindata/static
|
|
cp "$<" "$@"
|
|
|
|
bindata/static/css/xterm.css: js/node_modules/xterm/css/xterm.css | bindata/static
|
|
cp "$<" "$@"
|
|
|
|
js/node_modules/xterm/dist/xterm.css:
|
|
cd js && \
|
|
npm install
|
|
|
|
bindata/static/js/gotty.js.map bindata/static/js/gotty.js: js/src/* | js/node_modules/webpack
|
|
cd js && \
|
|
npx webpack --mode=$(WEBPACK_MODE)
|
|
|
|
js/node_modules/webpack:
|
|
cd js && \
|
|
npm install
|
|
|
|
README-options:
|
|
./gotty --help | sed '1,/GLOBAL OPTIONS/ d' > options.txt.tmp
|
|
sed -f README.md.sed -i README.md
|
|
rm options.txt.tmp
|
|
|
|
tools:
|
|
go install github.com/mitchellh/gox@latest
|
|
go install github.com/tcnksm/ghr@latest
|
|
|
|
test:
|
|
if [ `go fmt $(go list ./... | grep -v /vendor/) | wc -l` -gt 0 ]; then echo "go fmt error"; exit 1; fi
|
|
go test ./...
|
|
|
|
cross_compile:
|
|
GOARM=5 gox -os="darwin linux freebsd netbsd openbsd solaris" -arch="386 amd64 arm arm64" -osarch="!darwin/386" -osarch="!darwin/arm" $(BUILD_OPTIONS) -output "${OUTPUT_DIR}/pkg/{{.OS}}_{{.Arch}}/{{.Dir}}"
|
|
|
|
targz:
|
|
mkdir -p ${OUTPUT_DIR}/dist
|
|
cd ${OUTPUT_DIR}/pkg/; for osarch in *; do (cd $$osarch; tar zcvf ../../dist/gotty_${VERSION}_$$osarch.tar.gz ./*); done;
|
|
|
|
shasums:
|
|
cd ${OUTPUT_DIR}/dist; sha256sum * > ./SHA256SUMS
|
|
|
|
release-artifacts: gotty cross_compile targz shasums
|
|
|
|
release:
|
|
ghr -draft ${VERSION} ${OUTPUT_DIR}/dist # -c ${GIT_COMMIT} --delete --prerelease -u sorenisanerd -r gotty ${VERSION}
|
|
|
|
clean:
|
|
rm -fr gotty builds js/dist bindata/static js/node_modules
|
|
|
|
addcontributors:
|
|
gh issue list -s all -L 1000 --json author -t "$$(echo '{{ range . }}{{ .author.login }}\n{{ end }}')" | sort | uniq | xargs -Ifoo all-contributors add foo bug --commitTemplate '<%= (newContributor ? "Add" : "Update") %> @<%= username %> as a contributor'
|
|
gh pr list -s all -L 1000 --json author -t "$$(echo '{{ range . }}{{ .author.login }}\n{{ end }}')" | sort | uniq | xargs -Ifoo all-contributors add foo code --commitTemplate '<%= (newContributor ? "Add" : "Update") %> @<%= username %> as a contributor'
|