- Fixed creation of duplicate index entries when importing from CurseForge (fixes#224)
- Automatically remove duplicates in index
- Fixed `packwiz serve` with a custom `--pack-root` argument (fixes#223)
- Fixed `packwiz serve` with a custom index.toml location
- Cleaned up internal serving code, added comments and better errors
- Refactored path handling code
- Improved refreshing/exporting performance
- Factored out duplicated exporting logic
- Replaced GetAllMods calls with cleaner LoadAllMods calls and made the former private
- Improved variable names in update command
- Improved handling of aliassed files
- Changed CheckUpdate to take references to metadata
- Removed the ability to use an absolute path to the index file (that probably didn't work anyway)
- Behaviour change: order of entries in exported files may be random
* Add base and loader command
* Support updating to latest
* Support explicit fabric versions
* Support explicit Forge version
* Support quilt
* Add support for updating Minecraft
* Add support for Forge recommended
* Fix Forge version sorting
* Various fixes
* Add documentation to the use
* More suggestions
Looping through every file on every file update *and* cleaning + fromslash is sloww with many files
(ideally, we'd have a map to look up the file, but this is already significantly faster)
Both CurseForge and Modrinth preferences were not being done in a specific order - so
a file with a newer Minecraft version would not necessarily take priority over a file
with a more preferred loader (e.g. Quilt over Fabric) or a file with a newer release
date / CurseForge ID.
Also fixed a loop variable reference in the CurseForge loop, which caused eagerly resolved
(included in API response) file info to be inconsistent with the chosen version, and
added filtering for duplicate values in the acceptable-game-versions/primary version list
to ensure game versions are always compared properly (so the same index == same version).
* feat: install command for direct downloads
* use sha1 instead of sha256
* apply suggestions
* feat: parse urls instead of using hasprefix
* stop by default and add force flag
* Implement various fixes and improvements
Co-authored-by: Tricked <72335827+SkyBlockDev@users.noreply.github.com>
Co-authored-by: comp500 <comp500@users.noreply.github.com>
Added support for importing manual files and rehashing where necessary
Moved cache folder to "local" user folder
Cleaned up messages, saved index after importing
The mods-folder option is now replaced with two new options: meta-folder and meta-folder-base
This allows non-mod files to use the correct directory based on their category; with correct
import of resource packs/etc from CurseForge packs, and the ability to override this behaviour.
To improve the reliability of packwiz metadata file marking (in the index), new files now use .pw.toml
as the extension - any extension can be used, but .pw.toml will now be automatically be
marked as a metafile regardless of folder, so you can easily move metadata files around.
Existing metadata files will still work (as metafile = true is set in the index); though in
the future .pw.toml may be required.
* Fix ignore file inconsistencies
.packwizignore is supposed to work like .gitignore, yet it fails
miserably at doing so, being able to ignore only global patterns like
*.zip, and failing at patterns like /*.zip.
This commit introduces two changes to fix the issue:
- First, it uses a more up-to-date library. denormal/go-gitignore has
not been updated since 2018 and has long open issues and pull
requests, one of which tries to address leading slash ignoring, a-la
/*.zip. denormal account seems to be abandoned since around the same
year, so it makes sense to find a new library that does roughly the
same thing.
Gladly so, there's actually a library by sabhiram that shares the same
name (but not the package name itself - which is just ignore - so it
probably requires aliasing when importing).
- Secondly, it checks relative paths against ignore file instead of the
absolute ones, which makes it possible to use leading slash (and
probably some other features) with the new library.
From personal tests, it seems to address most - if not all - of the
inconsistencies. However, since it's a different library more throughout
testing probably wouldn't hurt to make sure it didn't break anything.
* Move dependency to main block
index.toml is now the pack root - if you want to replicate
what the pack-root option would have provided, just move
your index.toml (and update the path in pack.toml)