aboutsummaryrefslogtreecommitdiff
path: root/justfile
blob: 4094b20a82779d7ca43cfa0e24aa277cbdc9248f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Justfile for bibiman

# Installation directories
PREFIX := "/usr/local"
MANDIR := PREFIX + "/man"
BINDIR := PREFIX + "/bin"

# Default recipe
default: build

# Build the binary in release mode
build:
    cargo build --release

# Development build
dev:
    cargo build

# Run the binary in development mode
run: dev
    cargo run

# Install the binary and man pages
# Note: Requires sudo when installing to system directories
install: build
    #!/usr/bin/env sh
    set -eu
    install -D target/release/bibiman "${DESTDIR:-}"{{BINDIR}}/bibiman
    install -D man/bibiman.1 "${DESTDIR:-}"{{MANDIR}}/man1/bibiman.1
    install -D man/bibiman.toml.5 "${DESTDIR:-}"{{MANDIR}}/man5/bibiman.toml.5
    echo "Installation complete. Run 'sudo mandb' to update man page database if needed."

# Install only man pages
# Note: Requires sudo when installing to system directories
install-man:
    #!/usr/bin/env sh
    set -eu
    install -D man/bibiman.1 "${DESTDIR:-}"{{MANDIR}}/man1/bibiman.1
    install -D man/bibiman.toml.5 "${DESTDIR:-}"{{MANDIR}}/man5/bibiman.toml.5
    echo "Man pages installed. Run 'sudo mandb' to update man page database if needed."

# Uninstall
uninstall:
    #!/usr/bin/env sh
    set -eu
    rm -f "${DESTDIR:-}"{{BINDIR}}/bibiman
    rm -f "${DESTDIR:-}"{{MANDIR}}/man1/bibiman.1
    rm -f "${DESTDIR:-}"{{MANDIR}}/man5/bibiman.toml.5

# Clean build artifacts
clean:
    cargo clean

# Run tests
test:
    cargo test

# Format code
fmt:
    cargo fmt --all

# Run clippy lints
clippy:
    cargo clippy -- -D warnings

# Check the code
check:
    cargo check

# Build and run with test files
test-run: dev
    cargo run -- tests/biblatex-test.bib

# Show available recipes
list:
    just --list