Skip to content

Commit 8e17687

Browse files
CurseForge support!
1 parent 92e183a commit 8e17687

File tree

10 files changed

+438
-175
lines changed

10 files changed

+438
-175
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/target
22
/out
3+
/tests/mods
34
.DS_Store

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
11
# Changelog for Ferium
22

3+
## [3.11.0] - 23.01.2022
4+
5+
### CURSEFORGE SUPPORT!
6+
7+
- Renamed `mod_ids` and `repos` to `modrinth_mods` and `github_repos` in `Profile`
8+
- Added `curse_projects` to `Profile`
9+
- Added `add-curseforge` command
10+
- An API key is required to compile the application. Without this, the program will not compile. You can a provide blank value for this and the program will compile but anything using the CurseForge API will not work
11+
- Upgrading mods now uses the downloaded file's actual filename rather than the mod name
12+
- The remove command no long tries to remove the mod file (to be reintroduced later)
13+
- Added 2 flags to the upgrade command
14+
- `no_picker` When upgrading GitHub mods, if multiple assets are compatible a picker is normally shown. This option disables this and uses the first one
15+
- `no_patch_check` Normally, upgrading curse and modrinth mods will check for the full game version, but sometimes mods works between patch versions, so this option skips checking for the patch version. This doesn't affect upgrading GitHub mods
16+
- Made a test for the upgrade command. Will have to implement checking of the mods downloaded later
17+
- Some integration tests have been edited to test curse mods too
18+
- Upgrading GitHub mods now checks the releases' names for the game version too
19+
320
## [3.10.1] - 17.01.2022
21+
> Unreleased
422
523
- Upgrading Modrinth mods now correctly check the mod loader by converting the mod loader name to lowercase
624

Cargo.lock

Lines changed: 63 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[package]
22
name = "ferium"
3-
version = "3.10.1"
3+
version = "3.11.0"
44
edition = "2021"
55
authors = ["theRookieCoder <[email protected]>"]
6-
description = "Ferium is an easy to use CLI program for managing Minecraft mods on Modrinth and Github Releases"
6+
description = "Ferium is an easy to use CLI program for managing Minecraft mods from Modrinth, CurseForge, and Github Releases"
77
repository = "https://github.com/theRookieCoder/ferium"
88
readme = "README.md"
99
license = "MPL-2.0"
@@ -24,5 +24,6 @@ thiserror = "1"
2424
ferinth = "1"
2525
online = "3"
2626
bytes = "1"
27+
furse = "1"
2728
onig = "6"
2829
rfd = "0"

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
[![license badge](https://img.shields.io/github/license/theRookieCoder/ferium?style=for-the-badge)](https://github.com/theRookieCoder/ferium/blob/main/LICENSE.txt)
55
[![copyleft badge](https://img.shields.io/static/v1?label=&message=Copyleft&style=for-the-badge&labelColor=silver&color=silver&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAQAAAC0NkA6AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfjAxYBNgYPa+9oAAAEM0lEQVRYw6WYb0zVVRjHP9wQW7umA0xoKNSC+6bSNkzetKZbaVu19aLpfOGcbcw/S+uNbikuNwMsVyE3XVsro7VEXjS3ylmLxkRtC9crHGjCAv9AATK4CoZye8Hl/J7n/M7v8rvX57w55/lznt/583yf5/xyCEOlrKaSCp6ggCiQYJheLvMHv9HHA1MZ++kmmaZ1UUNZ9g6eo4X7aR3Mtvs0syJzB0U0MR3KgddOsiQTFxsZzdDBTLvFetd0OT5OHo1U+7j9tNJBN4MkgChFVLCS1Sz1aR7jHf5Lv4Yov1hfN8YRKgP1V9LIuGVxhmg6Fwv4XalPcJD8OTe3gA+YVHYXgt3kWato46nQp1jOWWs1eW7Fz5VaLbkZ3cdc6pX9UfeNkvd+a1aRtV3Fle+mLeGWEO/0mT/EWo7SxhBjjNDPKfbxtMPNVjHLKMVa+I0Q1lmG89nDTWdctPGqz80hIT+uAWRaGOqzeJEraQOw2YrzXNqNbJrlnqDFsCeJKZO3uDtnnN+wNq6cCSM74SGtd1wHlfrOkHAyyDPKrk5codIZ1n7DSlAoVF9iKjRq/cVCYZnPmJHsnWF1GcYRobiQf3yA3sr7VPM2cXp9br5Va2k0/EsAy4SixKh6a5LT6rQibGBAyaeV9SohWQabzeBvhUcTaoqPHHhdTKfSOaWk1wx/E8TN4CuhssW6pjnOCF/KiNrOxULWZPgNEbEJF4VKFT2mdbGLpNNJPzVqC9eKkTdbDK4ajy9ngVaPiHuU5AshWWe4VyIsMuwbWTi5Q7sYlYj+TdNbFBHpJZEV8vao8sOjMS8VRh64MkumrRhSh5UQ+T278s+jQdF/1PTGI4yaweNZuHiYF1RsyCiapdFcengyNajgZyP4RBhP8RpDAU42KcxqE30vNK7KYJQpploFY1NgnfmvApYiZxpskLAi6/PFVh454HBRyJ9K5yclvS5hJQggP7YA8vvZzJCi1+m3NKoUYnj8Eg31jSonDFuTTPEju9nIZuq55IP6FvUJ3iF0zjBqApLWOu6FTlp9FCgM90rX9/zpt1Z9z56QLkasatnLRfe8TT5pmHetQqI6RAoesB5A5aIy/s5jrxAl0VmrJHqFvrQuflCwCPM4Jy71s1L0tTA75IPzAyo5ea3D8eg5LORf2mWqnGaXz3Q+b3CcDm6nCtBfqeV5R+xsUyf1mC3eoBLp9qzAcocquN90qRxTW/Fhxk+Hw8o+HvQIOqPU2qkI7SLGeauAmhf8YrygVCepU0HmpkLqLaQ7nz43Ra3VJBknzqpA/SrivofpaduF64n9Kdt83OupJ/YA48ACiolRyRpHovuMd5kKs8PrA+JirjbsvlFBlE9DyP8qXnQ3+eNiblpOc+gfOCc0gGRGpeyzymq7dbLXSmch/q24qIQ1VBKjjMLUT7UheunmIq2qQgmg/wHquM6d9tIV7AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wMy0yMlQwMTo1NDowNiswMDowMOIizoUAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDMtMjJUMDE6NTQ6MDYrMDA6MDCTf3Y5AAAAAElFTkSuQmCC)](https://en.wikipedia.org/wiki/Copyleft)
66

7-
Ferium is an open source and easy to use package manager for Minecraft mods on [Modrinth](https://modrinth.com) and [GitHub Releases](https://github.com/releases). Simply specify the mods you use through the CLI and in just one command, you can download all the mods and update existing ones.
7+
Ferium is an easy to use CLI program for managing Minecraft mods from [Modrinth](https://modrinth.com/mods), [CurseForge](https://curseforge.com/minecraft/mc-mods), and [GitHub Releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases). Simply specify the mods you use through the CLI and in just one command, you can download all the mods and update existing ones.
88

9-
## Feature requests
9+
## Feature Requests
1010

11-
If you want to have a feature added, check the [project](https://github.com/theRookieCoder/ferium/projects/1) to see if the feature is already added/planned. If not, you can [create a new issue](https://github.com/theRookieCoder/ferium/issues/new)
11+
If you would like to make a feature request, check the [project](https://github.com/theRookieCoder/ferium/projects/1) to see if the feature has already been added/planned. If not, you can [create a new issue](https://github.com/theRookieCoder/ferium/issues/new)
1212

13-
## Building or working on Ferium
13+
## Building or Working with Ferium
1414

15-
First you have to install the Rust toolchain (`cargo`, `rustup`, etc).
16-
To build the project and install it to `~/bin`, run `make install`. If you want to test the project by yourself, you can use `make install-dev` which is `make install` but compiles with `--debug`.
17-
If you want to obtain executables for a specific OS, you can run `make build-<OS>` and replace `<OS>` with `mac`, `win`, or `linux`. The produced binaries will be zipped and moved to `out/`.
18-
You can also run unit and integration tests using `make test`. The reason we don't use `cargo test` is that it will interfere with your existing config, and the integration tests do not work when run in parallel. `make test` saves your config, forces tests to run sequentially, then restores your config (whether the tests failed or not).
15+
Firstly you need the Rust toolchain (`cargo`, `rustup`, etc). You can install these from <https://rust-lang.org>.
16+
To build the project and install it to `~/bin`, clone the project then run `make install`. If you want to install for testing a developement version, use `make install-dev` <sup>(which is just `make install` but with `--debug`)</sup>.
17+
If you want to obtain executables for a specific OS, you can run `make build-<OS>` and replace `<OS>` with `mac`, `win`, or `linux`. The produced binaries will be zipped and moved to `out/`.
18+
You can run tests using `make test`. Don't use `cargo test` because that will interfere with your existing config, and the integration tests do not work when run in parallel. `make test` saves your config, forces tests to run sequentially, then restores your config (whether the tests failed or not).

makefile

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,19 @@ build-linux:
3737

3838
test:
3939
cargo clippy -- \
40-
-A clippy::let-underscore-drop \
41-
-A clippy::multiple-crate-versions \
42-
-A clippy::non-ascii-literal
43-
-W clippy::nursery \
44-
-W clippy::pedantic \
4540
-D clippy::all \
4641
-D clippy::cargo \
4742
-D clippy::complexity \
4843
-D clippy::perf \
4944
-D clippy::style \
50-
-D clippy::suspicious
45+
-D clippy::suspicious \
46+
-W clippy::nursery \
47+
-W clippy::pedantic \
48+
-A clippy::let-underscore-drop \
49+
-A clippy::multiple-crate-versions \
50+
-A clippy::non-ascii-literal \
51+
-A clippy::too-many-lines \
52+
-A clippy::single-match-else
5153
python3 save_config.py
5254
# Don't parallelise the tests
5355
-cargo test -- --test-threads=1

0 commit comments

Comments
 (0)