set shell := ["zsh", "-euyc"]
# F
set dotenv-load := true
# Doesn't work??, Get this to be a just variable
CI := if env_var_or_default("CI", "1") == "0" { "--color=never" } else { "--color=always" }
# version := `rg --color=never --pcre2 -oIN '^version = "\K(\d+\.?)+' Cargo.toml`
# Doesn't not export and read
rl := if env_var_or_default("rl", "0") == "1" { "RUST_LOG=debug" } else { "" }
# export RUST_LOG := "debug"
debug:
echo $TASKRC $TASKDATA
bt := '0'
export RUST_BACKTRACE := bt
log := "warn"
export JUST_LOG := log
defaut:
@just --choose
alias e := edit
edit:
@$EDITOR {{justfile()}}
# Can use noglob or sh -c
# sh -c 'RUST_LOG=debug cargo run {{CI}} -- {{ARGS}}'
alias r := run
run *ARGS:
{{rl}} noglob cargo run {{CI}} -- {{ARGS}}
fmt:
cargo fmt -- --check --files-with-diff {{CI}}
fmt-all:
cargo fmt --all -- --check --files-with-diff {{CI}}
audit:
cargo audit --deny warnings {{CI}}
check:
cargo check --all-features {{CI}}
clippy:
cargo clippy --all --all-targets --all-features {{CI}}
# cargo clippy --all-features {{CI}} -- --deny warnings --deny clippy::all
alias br := build-release
build-release:
cargo build --release --all-features {{CI}}
test *ARGS:
cargo test {{CI}} -- {{ARGS}}
###################################################################################
###################################################################################
man:
help2man \
--name 'tag files colorfully' \
--manual 'Wutag Manual' \
--no-info \
target/debug/wutag \
> man/wutag.1
sed -i "s,\x1B\[[0-9;]*[a-zA-Z],,g" man/wutag.1
view-man: man
man man/wutag.1
# sd '{{FROM}}' '{{TO}}' src/*.rs Cargo.toml
# replace FROM TO *GO:
# ruplacer '{{FROM}}' '{{TO}}' {{GO}} src/*.rs
#
# update-version NEW *GO:
# just replace {{version}} {{NEW}} {{GO}}
# just man
replace FROM TO:
-fd -tf -e rs -e toml | sad '{{FROM}}' '{{TO}}'
#
# @update-version NEW:
# -just replace {{version}} {{NEW}}
#
# @get-version:
# echo "{{version}}"
@lint:
print -Pr "%F{2}%BChecking for FIXME/TODO...%b%f"
rg -s '\bFIXME\b|\bFIX\b|\bDISCOVER\b|\bNOTE\b|\bNOTES\b|\bINFO\b|\bOPTIMIZE\b|\bXXX\b|\bEXPLAIN\b|\bTODO\b|\bHACK\b|\bBUG\b|\bBUGS\b' src/*.rs
print -Pr $'\n'"%F{2}%BChecking for long lines...%b%f"
rg --color=always '.{100}' src/*.rs
@code:
tokei -ft rust -s lines
@code-overall:
tokei -t rust
###################################################################################
###################################################################################
no-changes:
git diff --no-ext-diff --quiet --exit-code
d-merged:
git branch --merged | egrep -v "(^\*|master|dev) | xargs git branch -d"
###################################################################################
###################################################################################
preview-readme:
grip -b README.md
alias er := edit-readme
edit-readme:
@$EDITOR ${$(cargo locate-project | jq -r '.root'):h}/README.md
edit-main:
@$EDITOR ${$(cargo locate-project | jq -r '.root'):h}/src/main.rs
alias ee := edit-rust
edit-rust:
#!/usr/bin/env zsh
local -a files sel
files=$(command fd -Hi -tf -d2 -e rs)
sel=("$(
print -rl -- "$files[@]" | \
fzf --query="$1" \
--multi \
--select-1 \
--exit-0 \
--bind=ctrl-x:toggle-sort \
--preview-window=':nohidden,right:65%:wrap' \
--preview='([[ -f {} ]] && (bat --style=numbers --color=always {})) || \
([[ -d {} ]] && (exa -TL 3 --color=always --icons {} | less)) || \
echo {} 2> /dev/null | head -200'
)"
) || return
[[ -n "$sel" ]] && ${EDITOR:-vim} "${sel[@]}"
# vim: ft=just:et:sw=0:ts=2:sts=2:fdm=marker:fmr={{{,}}}: