set shell := ["nu", "-c"]
# use this if don't have nushell installed
# set shell := ["powershell.exe", "-c"]
# set shell := ["zsh", "-uc"]
bt := '0'
export RUST_BACKTRACE := bt
log := "warn"
export JUST_LOG := log
default:
@just --list
# create a nix shell with all tools needed for development
shell:
nix develop . --command "nu"
run:
cargo run
build:
cargo build
release-build-apple:
cargo +nightly build -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --target aarch64-apple-darwin --release
compress-build:
upx --best --lzma target/aarch64-apple-darwin/release/buklo
timings:
cargo build --timings
release:
cargo build --release
build-linux:
cargo +nightly build -Z build-std=std,panic_abort --target x86_64-unknown-linux-gnu --release
fmt:
cargo fmt --all
spellcheck:
cargo spellcheck check
# add git log messages to changelog
changes:
git log --pretty=format:%s >> CHANGELOG.md
# install buklo from crates.io
install:
cargo install -f buklo
# install development dependencies
install-dev-deps:
rustup install nightly
rustup update nightly
cargo +nightly install cargo-fuzz
cargo install cargo-check
cargo install cargo-limit
cargo install cargo-watch
npm install -g @commitlint/cli @commitlint/config-conventional
# count non-empty lines of code
sloc:
@cat src/*.rs | sed '/^\s*$/d' | wc -l
fuzz:
cargo +nightly fuzz run fuzz-compiler
# publish current GitHub master branch
publish:
#!/usr/bin/env bash
set -euxo pipefail
rm -rf tmp/release
git clone git@github.com:ghishadow/buklo.git tmp/release
VERSION=`sed -En 's/version[[:space:]]*=[[:space:]]*"([^"]+)"/\1/p' Cargo.toml | head -1`
cd tmp/release
#git tag -a $VERSION -m "Release $VERSION"
git push origin $VERSION
cargo publish
cd ../..
rm -rf tmp/release