Files
iris-context/justfile
T

78 lines
1.9 KiB
Makefile

# build binary file
[group('dev')]
build:
@go build -o iris main.go
optimized-build:
@GOAMD64=v3 go build -pgo=auto -ldflags="-s -w" -trimpath -o iris main.go
# run iris
[group('dev')]
run:
@./iris
# re-build and reload iris
[group('dev')]
[linux, macos]
reload:
@go build -o iris main.go
@if [ -n "${IRIS_PID:-}" ]; then kill -USR1 $IRIS_PID; fi
@if [ -z "${IRIS_FD:-}" ]; then ./iris; fi
# update pkg
[group('dev')]
pkg:
@go mod tidy
# debugger
[group('dev')]
debug:
@./iris --debug
# copy to local bin
[group('dev')]
copy:
@rm ~/.local/bin/iris
@cp ./iris ~/.local/bin/iris
# run all tests
[group('dev')]
test:
@go test ./... -v
# run project health and scoring analyzer
alias ana := analyze
[group('dev')]
analyze:
@go run scripts/test_analyzer.go
# run linter
[group('dev')]
lint:
@golangci-lint run ./...
# test the update command (version check + comparison), no full iris session needed
# usage: just debug-update v1.99.0
[group('debug')]
debug-update version="v1.99.0":
#!/bin/sh
tmp=$(mktemp -d)
printf '{"tag_name":"%s"}' "{{version}}" > "$tmp/response.json"
python3 -m http.server 19999 --directory "$tmp" 2>/dev/null &
SERVER_PID=$!
sleep 0.3
echo "--- testing iris update command ---"
IRIS_UPDATE_URL="http://localhost:19999/response.json" ./iris update
kill $SERVER_PID 2>/dev/null
rm -rf "$tmp"
# test the in-session update notification banner (requires iris.zsh hook to be active)
# usage: just debug-notify v1.99.0
[group('debug')]
debug-notify version="v1.99.0":
IRIS_PID="" IRIS_MOCK_LATEST_VERSION="{{version}}" ./iris
# build a versioned release binary
# usage: just build-release v1.2.0
[group('debug')]
build-release version:
@GOAMD64=v3 go build -pgo=auto -ldflags="-s -w -X github.com/versenilvis/iris/root.Version={{version}}" -trimpath -o iris main.go