0288be07f9
model: add file_count_preference for multi-file selection support
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia27c829dbcc21a7fcfc8e6f67f9e33276a6a6964
2026-03-03 23:33:12 +03:00
e47690a858
model/lockfile: update tests to use get_project
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I2163215bc069431e3d6d53c9c14dd15c6a6a6964
2026-03-03 23:33:11 +03:00
bb562b542d
cli/commands: use create_all_platforms to reduce duplication in update cmd
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I00d3029de7c13a57cefb1b6eaae9f1606a6a6964
2026-03-03 23:33:10 +03:00
0a15e0b1f3
treewide: remove dead code
...
Also deletes some dead_code annotations from functions that are
*actually used*.
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic815cacc93c464078ead1674e7523d8b6a6a6964
2026-03-03 23:33:09 +03:00
b72c424ebb
cli: fix global -y flag conflicts in add-prj` and sync commands
...
`AddPrjArgs` had a local `-y` flag that conflicted with the global flag,
causing runtime panics. Removed the local field and updated callers to
use `global_yes` consistently.
The sync command now respects the global `-y` flag by accepting, you
guessed it, the `global_yes` parameter.
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7b7c42fabbca0e363bd18a1d8b6b3bb76a6a6964
2026-03-03 23:33:08 +03:00
344dc0c7e7
model/project: simplify file selection sorting logic
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0acf8e690157f1926a2658165592199d6a6a6964
2026-02-27 22:26:44 +03:00
4eb2d8d092
model/lockfile. one less clone!
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8dbfc511fc07273a69953b03404efc656a6a6964
2026-02-27 22:26:43 +03:00
14264931dd
model/enums: derive Ord for ReleaseType to simplify comparisons
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id47e4e40e015b1212815addbbca238456a6a6964
2026-02-27 22:26:42 +03:00
f70e3b8690
cli/commands: use constants for repeated platform names
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I33c2cb59c73791a16f322e8544161a496a6a6964
2026-02-27 22:26:41 +03:00
34976a66d2
treewide: general cleanup
...
Finally had the time to clean up after myself. Does a bunch of things,
without breakage as far as I'm aware. I've removed around 20 unnecessary
clones, and simplified the architechture a little bit.
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4d22337b997a3bf5b0593e6068cd1bd86a6a6964
2026-02-27 21:55:59 +03:00
e783178493
lockfile: remove unused new method
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If64632acaf9805b68a662e25aebe60216a6a6964
2026-02-21 19:56:05 +03:00
5a7762ac13
rate-limiter: re-validate burst window in loop after sleep
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iaa63eef1f055b9a98c90739025bd3ff36a6a6964
2026-02-21 19:56:04 +03:00
255220b43c
export: introduce `export_profile to reduce boilerplate; cleanup
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I30469f47be8df27ee2a31f1acdcd68a16a6a6964
2026-02-21 19:56:03 +03:00
fc2d89892c
model/lockfile: revert get_project to O(n) linear scan; remove unused project index
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3a35ab4ce5dec8ce95a736440fa293fe6a6a6964
2026-02-21 19:56:02 +03:00
8ed0b6fb12
rate-limiter. re-acquire lock after sleep to prevent use-after-free
...
I thought rust fixed this...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3a2fe427cdc19a6317510e8736fe46d56a6a6964
2026-02-21 19:55:48 +03:00
7ee9ee1159
various: shared HTTP client with connection pooling
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id13c17e9352da970a289f4e3ad909c5b6a6a6964
2026-02-19 00:22:48 +03:00
0cc72e9916
platform: add mockito HTTP tests to modrinth
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I880c11195559fcfb9701e945a10fe87b6a6a6964
2026-02-19 00:22:47 +03:00
4fc05e71e7
chore: bump dependencies
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic1fda520473e53d1a584a3dda63ffda86a6a6964
2026-02-19 00:22:46 +03:00
fa5befff3b
cli: add --all, --updates, --no-deps flags to commands
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I25581b8de945284b4ce7c2c85601a86f6a6a6964
2026-02-19 00:22:45 +03:00
b71b2862c9
infra: add clippy allows; fix PathBuf -> Path
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I07795374f678fa2ec17b4171fa7e32276a6a6964
2026-02-19 00:22:44 +03:00
27160a1eda
platform: add CurseForge side detection from categories
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I62c5117ed97bbc2389330720b4761a716a6a6964
2026-02-19 00:22:43 +03:00
5385c0f4ed
cli: wire shelve flag; more clippy fixes
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I694da71afe93bcb33687ff7d8e75f04f6a6a6964
2026-02-19 00:22:42 +03:00
1db1d4d6d2
cli: wire get_site_url in inspect; fix clippy in remote_update
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ifdbc34dd7a5a51edc5dff326eac095516a6a6964
2026-02-19 00:22:41 +03:00
4079485179
cli: add version mismatch warning to ls; wire ErrorSeverity in status
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I170f944127333c552e8a230972ed89d66a6a6964
2026-02-19 00:22:40 +03:00
1ecf0fae00
cli: add --all flag to update; wire UpdateStrategy enforcement
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9570557396ac46e82cbabbd8e39be0936a6a6964
2026-02-19 00:22:39 +03:00
79a82d6ab8
cli: wire MultiError in add/rm; add typo suggestions
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I98240ec0f9e3932a46e79f82f32cd5d36a6a6964
2026-02-19 00:22:38 +03:00
cce952698a
cli: make init and cfg interactive by default
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7596bb9913a8d98133bdf3c531241bf06a6a6964
2026-02-19 00:22:37 +03:00
788bdb0f1b
fetch: add parallel downloads and --shelve flag
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id61b7c502923c697599cfb3afed948d56a6a6964
2026-02-19 00:22:37 +03:00
977beccf01
export: add text replacement and missing projects rules
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3f404448278e8b1d492fa5d1cf7397736a6a6964
2026-02-19 00:22:36 +03:00
4814ad90bb
ui: add interactive prompts and typo suggestions
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iec773550dca1f0ddc2f60360e6b7cb956a6a6964
2026-02-19 00:22:35 +03:00
3e6f528056
model: add cross-provider version mismatch detection
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I71ea6c9141ec6b36edf708af1c8ed53d6a6a6964
2026-02-19 00:22:34 +03:00
f5d735efb8
model: add lockfile migration system (v1 -> v2)
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I335406fc4ee4a04071f6dcb6782e1a076a6a6964
2026-02-19 00:22:33 +03:00
4b353733ff
error: add MultiError for batch error aggregation
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I468289d7a5c3956fc410b6af1a8d070d6a6a6964
2026-02-19 00:22:32 +03:00
8464ad3786
nix: bump nixpkgs
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9f90f6be29fe675c1ee6f03c6bd0046f6a6a6964
2026-02-19 00:22:31 +03:00
c8baf4a369
tests: add CLI argument and config tests
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ibf3751724aff64e6a901c2703d7778d16a6a6964
2026-02-19 00:22:30 +03:00
3414b9f1a4
fix: update Config initializers with new field
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I6c1abd66baf81256f73ae03846673ebf6a6a6964
2026-02-19 00:22:29 +03:00
92c3215e67
model: add exportServerSideProjectsToClient config property
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I638f8a1f2eb7d4f40de55aebd884ed9c6a6a6964
2026-02-19 00:22:28 +03:00
7187b3289f
cli: add --show-io-errors and `--no-server to export cmd
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib3b3818fbd7902678c3a4cecc079f8fb6a6a6964
2026-02-19 00:22:27 +03:00
63f09b359d
cli: add --deps flag to import command
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I19ac6af4c80fe7e86fe8259ed3bf49166a6a6964
2026-02-19 00:22:26 +03:00
6648de9971
cli: implement rm --all to remove all projects
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9776c31b90336bf33475adb1e36dc3a36a6a6964
2026-02-19 00:22:25 +03:00
a50657bad5
cli: add Pakku-parity command flags
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib1afd8838dfbd1b70a35d313ed3505f26a6a6964
2026-02-19 00:22:24 +03:00
0eff42568e
docs: prepare Pakker documentation
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I03df3787081bde6ebf0366a24320307a6a6a6964
2026-02-19 00:22:23 +03:00
563ff2b187
nix: initial tooling setup
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia510d6575a3796118a14dbc834af1ba16a6a6964
2026-02-13 00:15:03 +03:00
ef28bdaeb4
initial commit
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ife1391ed23a1e7f388b1b5eca90b9ea76a6a6964
2026-02-13 00:14:46 +03:00