-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy path.justfile
132 lines (100 loc) · 3.33 KB
/
.justfile
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Small Justfile (https://github.com/casey/just and https://just.systems/man/en).
# `just` is recommended.
# Its useful when you want to run groups of tests and do not want to type the full test path
# Windows users will need to use PowerShell `just --shell pwsh.exe --shell-arg -c`
import ".setup/ubuntu.just"
import ".setup/fedora.just"
import ".setup/windows.just"
import ".setup/macos.just"
# Run cargo clippy on artemis project
default:
cargo clippy
_test target:
cargo test --release {{target}}
_pretest:
cargo test --no-run --release
# Test only the ESE parsing functions
[group('artifacts')]
ese: (_test "artifacts::os::windows::ese")
# Test only the WMI parsing functions
[group('artifacts')]
wmi: (_test "artifacts::os::windows::wmi")
# Test only the ShellItems parsing functions
[group('artifacts')]
shellitems: (_test "artifacts::os::windows::shellitems")
# Test only the Outlook parsing functions
[group('artifacts')]
outlook: (_test "artifacts::os::windows::outlook")
# Test only the Spotlight parsing functions
[group('artifacts')]
spotlight: (_test "artifacts::os::macos::spotlight")
# Test only the Registry parsing functions
[group('artifacts')]
registry: (_test "artifacts::os::windows::registry")
# Test only the Eventlog parsing functions
[group('artifacts')]
eventlogs: (_test "artifacts::os::windows::eventlogs")
# Test only the JavaScript runtime
runtime: (_test "runtime::")
# Test only the FileSystem functions
filesystem: (_test "filesystem::")
# Test only the timelining functions
timeline: (_test "timeline::")
# Test all the Windows artifacts
[group('os')]
windows: (_test "artifacts::os::windows")
# Test all the macOS artifacts
[group('os')]
macos: (_test "artifacts::os::macos")
# Test all the Linux artifacts
[group('os')]
linux: (_test "artifacts::os::linux")
# Test all the Unix artifacts
[group('os')]
unix: (_test "artifacts::os::unix")
# Spawn single client and attempt to connect to server
[group('workspace')]
client:
cd client && cargo build --release --examples
cd target/release/examples && ./start_client ../../../client/tests/test_data/client.toml
# Build the entire artemis project.
build:
cargo build --release
# Run tests for code coverage. Used by CI
_coverage:
cargo llvm-cov --release --workspace --exclude apollo --lcov --output-path lcov.info
# Build Artemis for GitHub Actions
_ci_release target:
cargo auditable build --profile release-action --bin artemis --target {{target}}
# Build Artemis for GitHub Actions using Cross
_ci_release_cross target:
cross build --profile release-action --bin artemis --target {{target}}
# Test the entire artemis project
test:
cargo test --release
# Test the entire artemis project using nextest
nextest:
cargo nextest run --release
# Just build the artemis binary
[group('workspace')]
cli:
cd cli && cargo build --release
# Just build core library
[group('workspace')]
core:
cd artemis-core && cargo build --release
# Review complexity with scc
complex:
scc -i rs --by-file -s complexity
# Setup Artemis development environment for Ubuntu
[group('setup')]
setup-ubuntu: (_ubuntu)
# Setup Artemis development environment for Fedora
[group('setup')]
setup-fedora: (_fedora)
# Setup Artemis development environment for Windows
[group('setup')]
setup-windows: (_windows)
# Setup Artemis development environment for macOS
[group('setup')]
setup-macos: (_macos)