Compare commits

..

265 Commits

Author SHA1 Message Date
mxve
dc6a61b8fc v0.6.10 2024-03-01 10:38:19 +01:00
mxve
87535fb839 add delete support for dirs 2024-03-01 10:37:56 +01:00
mxve
4d6f056d7b use_https default true 2024-02-29 10:33:31 +01:00
mxve
c9ead57ee5
Merge pull request from mxve/dependabot/cargo/serde-1.0.197
Bump serde from 1.0.196 to 1.0.197
2024-02-27 05:53:24 +01:00
dependabot[bot]
d441eeaa36
Bump serde from 1.0.196 to 1.0.197
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.196 to 1.0.197.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.196...v1.0.197)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-27 04:47:07 +00:00
mxve
2143b86d07
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.114
Bump serde_json from 1.0.113 to 1.0.114
2024-02-27 05:46:08 +01:00
mxve
5372fba0d6
Merge pull request from mxve/dependabot/cargo/openssl-0.10.64
Bump openssl from 0.10.63 to 0.10.64
2024-02-27 05:45:59 +01:00
dependabot[bot]
b0e445400a
Bump serde_json from 1.0.113 to 1.0.114
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.113 to 1.0.114.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.113...v1.0.114)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 16:01:59 +00:00
dependabot[bot]
a71c789e29
Bump openssl from 0.10.63 to 0.10.64
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.63 to 0.10.64.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.63...openssl-v0.10.64)

---
updated-dependencies:
- dependency-name: openssl
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 16:01:49 +00:00
mxve
a561839fd0
Merge pull request from mxve/feat/aarch-macos-release
build: add macos and aarc64 release builds
2024-02-25 22:07:43 +01:00
Edo
4ddd3c3ca7
build: add macos and aarc64 release builds
WINE should run on macOS and ARM64 because why not
2024-02-25 16:31:11 +01:00
mxve
bb66366f41 write games.json content to file on error 2024-02-20 19:54:16 +01:00
mxve
bd26533ae2 add debug print to get_body 2024-02-20 19:44:11 +01:00
mxve
1452dfb265 v0.6.8 2024-02-20 02:00:20 +01:00
mxve
55328a969b remove unused imports 2024-02-20 01:56:23 +01:00
mxve
512a073b07 remove debug print 2024-02-20 01:47:35 +01:00
mxve
99010664bf fix unix self_update::run 2024-02-20 01:37:46 +01:00
mxve
c93fcba652
Merge pull request from mxve/dependabot/cargo/semver-1.0.22
Bump semver from 1.0.21 to 1.0.22
2024-02-20 01:33:09 +01:00
mxve
5450109cf2 remove http_req from deps 2024-02-20 01:28:49 +01:00
mxve
02c3004231 fully replace http_req with reqwest
close 
Should also help to either resolve or at least investigate seemingly random TLS & IO errors  
2024-02-20 01:28:31 +01:00
dependabot[bot]
6bb96006de
Bump semver from 1.0.21 to 1.0.22
Bumps [semver](https://github.com/dtolnay/semver) from 1.0.21 to 1.0.22.
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](https://github.com/dtolnay/semver/compare/1.0.21...1.0.22)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 15:21:09 +00:00
mxve
9de8543590 Merge branch 'main' of github.com:mxve/alterware-launcher 2024-02-15 01:05:46 +01:00
mxve
dba849e3be add --ignore-required-files to --help 2024-02-15 01:05:42 +01:00
mxve
399d7da9aa
Merge pull request from mxve/dependabot/cargo/indicatif-0.17.8
Bump indicatif from 0.17.7 to 0.17.8
2024-02-12 17:17:21 +01:00
dependabot[bot]
2454547c8f
Bump indicatif from 0.17.7 to 0.17.8
Bumps [indicatif](https://github.com/console-rs/indicatif) from 0.17.7 to 0.17.8.
- [Release notes](https://github.com/console-rs/indicatif/releases)
- [Commits](https://github.com/console-rs/indicatif/commits)

---
updated-dependencies:
- dependency-name: indicatif
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 15:22:11 +00:00
mxve
3d0a47ec60 prepare v0.6.7 2024-02-09 19:13:11 +01:00
mxve
5ef075d4c3 add --ignore-required-files 2024-02-09 18:45:19 +01:00
mxve
e8aee89f45 check for required files 2024-02-07 12:53:43 +01:00
mxve
2760e2ab1e keep console open & exit process when game not found 2024-02-07 12:29:58 +01:00
mxve
d44ae36f86 whoopsie 2024-02-07 12:23:31 +01:00
mxve
6e3c06af86 remove unused src files 2024-02-07 12:06:11 +01:00
mxve
fcdc875272 add use_https
close 
2024-02-07 12:05:57 +01:00
mxve
32d1b129c8 only download iw4x-sp if selected
close 
2024-02-07 11:52:21 +01:00
mxve
1dd18317cf require references
close 
2024-02-07 11:37:34 +01:00
mxve
ccdde3d99f
Merge pull request from mxve/dependabot/cargo/serde-1.0.196
Bump serde from 1.0.195 to 1.0.196
2024-02-07 11:29:14 +01:00
dependabot[bot]
d5973b0aff
Bump serde from 1.0.195 to 1.0.196
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.195 to 1.0.196.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.195...v1.0.196)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-07 10:15:01 +00:00
mxve
652b908a39
Merge pull request from mxve/dependabot/cargo/tokio-1.36.0
Bump tokio from 1.35.1 to 1.36.0
2024-02-07 11:14:44 +01:00
mxve
f387a34b35
Merge pull request from mxve/dependabot/cargo/reqwest-0.11.24
Bump reqwest from 0.11.23 to 0.11.24
2024-02-07 11:14:35 +01:00
mxve
ea69e6d964
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.113
Bump serde_json from 1.0.111 to 1.0.113
2024-02-07 11:14:24 +01:00
dependabot[bot]
9cbfed8bf3
Bump tokio from 1.35.1 to 1.36.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.35.1 to 1.36.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.35.1...tokio-1.36.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 15:46:38 +00:00
dependabot[bot]
9f789ba556
Bump reqwest from 0.11.23 to 0.11.24
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.23 to 0.11.24.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.23...v0.11.24)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 15:46:31 +00:00
dependabot[bot]
7fc39f24bc
Bump serde_json from 1.0.111 to 1.0.113
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.111 to 1.0.113.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.111...v1.0.113)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 15:13:01 +00:00
Edo
1dd2e898d9
Merge pull request from mxve/dependabot/cargo/openssl-0.10.63
Bump openssl from 0.10.62 to 0.10.63
2024-01-27 10:12:30 +01:00
dependabot[bot]
006ca15232
Bump openssl from 0.10.62 to 0.10.63
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.62 to 0.10.63.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.62...openssl-v0.10.63)

---
updated-dependencies:
- dependency-name: openssl
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 15:46:30 +00:00
Edo
1730bf40be
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.111
Bump serde_json from 1.0.109 to 1.0.111
2024-01-21 10:29:41 +01:00
dependabot[bot]
f40448b6fc
Bump serde_json from 1.0.109 to 1.0.111
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.109 to 1.0.111.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.109...v1.0.111)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 15:37:54 +00:00
Edo
b418732ddf
Merge pull request from mxve/dependabot/cargo/serde-1.0.195
Bump serde from 1.0.193 to 1.0.195
2024-01-10 22:22:07 +01:00
Edo
bef7a88db0
Merge pull request from mxve/dependabot/cargo/semver-1.0.21
Bump semver from 1.0.20 to 1.0.21
2024-01-10 22:22:00 +01:00
dependabot[bot]
9f95397bd2
Bump semver from 1.0.20 to 1.0.21
Bumps [semver](https://github.com/dtolnay/semver) from 1.0.20 to 1.0.21.
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](https://github.com/dtolnay/semver/compare/1.0.20...1.0.21)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 15:51:12 +00:00
dependabot[bot]
c2ec4f6a45
Bump serde from 1.0.193 to 1.0.195
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.193 to 1.0.195.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.193...v1.0.195)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 15:50:50 +00:00
mxve
cab26cfa16 v0.6.6 2024-01-04 18:55:05 +01:00
mxve
1147e0673b use new cdn 2024-01-04 18:53:44 +01:00
Edo
4fec555c1f
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.109
Bump serde_json from 1.0.107 to 1.0.109
2024-01-04 13:18:43 +01:00
mxve
48fe7a4780 set fix steamlocate version until stable release 2024-01-02 11:52:42 +01:00
mxve
0e8b9285c9 fix steamlocate beta.2 2024-01-02 11:44:34 +01:00
mxve
725ec09e5e v0.6.5 2024-01-02 11:22:33 +01:00
mxve
caaf73e9f3 add support for Game.delete 2024-01-02 11:22:18 +01:00
dependabot[bot]
458cd6d8bc
Bump serde_json from 1.0.107 to 1.0.109
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.107 to 1.0.109.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.107...v1.0.109)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-01 15:14:18 +00:00
mxve
2261a9a655
Merge pull request from mxve/dependabot/cargo/openssl-0.10.62
Bump openssl from 0.10.61 to 0.10.62
2023-12-27 22:14:13 +01:00
mxve
25a781df8e
Merge pull request from mxve/dependabot/cargo/futures-util-0.3.30
Bump futures-util from 0.3.29 to 0.3.30
2023-12-27 21:58:03 +01:00
dependabot[bot]
637fa0a504
Bump openssl from 0.10.61 to 0.10.62
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.61 to 0.10.62.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.61...openssl-v0.10.62)

---
updated-dependencies:
- dependency-name: openssl
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-27 20:56:47 +00:00
mxve
23df31735d
Merge pull request from mxve/dependabot/cargo/steamlocate-2.0.0-beta.2
Bump steamlocate from 2.0.0-alpha.0 to 2.0.0-beta.2
2023-12-27 21:55:58 +01:00
dependabot[bot]
6ae5ff66f0
Bump futures-util from 0.3.29 to 0.3.30
Bumps [futures-util](https://github.com/rust-lang/futures-rs) from 0.3.29 to 0.3.30.
- [Release notes](https://github.com/rust-lang/futures-rs/releases)
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.29...0.3.30)

---
updated-dependencies:
- dependency-name: futures-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-27 20:55:08 +00:00
mxve
11f49cca32
Merge pull request from mxve/dependabot/cargo/reqwest-0.11.23
Bump reqwest from 0.11.22 to 0.11.23
2023-12-27 21:54:40 +01:00
mxve
ad024ab997
Merge pull request from mxve/dependabot/cargo/tokio-1.35.1
Bump tokio from 1.35.0 to 1.35.1
2023-12-27 21:54:30 +01:00
dependabot[bot]
2db8e83502
Bump tokio from 1.35.0 to 1.35.1
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.35.0 to 1.35.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.35.0...tokio-1.35.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 15:46:03 +00:00
dependabot[bot]
8f674ef4e5
Bump reqwest from 0.11.22 to 0.11.23
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.22 to 0.11.23.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.22...v0.11.23)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 15:45:55 +00:00
dependabot[bot]
19484c8b79
Bump steamlocate from 2.0.0-alpha.0 to 2.0.0-beta.2
Bumps [steamlocate](https://github.com/WilliamVenner/steamlocate-rs) from 2.0.0-alpha.0 to 2.0.0-beta.2.
- [Commits](https://github.com/WilliamVenner/steamlocate-rs/commits)

---
updated-dependencies:
- dependency-name: steamlocate
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 15:45:41 +00:00
mxve
92c46a9d87 update readme 2023-12-22 21:29:04 +01:00
mxve
e4de326b41 v0.6.4 2023-12-18 16:51:20 +01:00
mxve
0728561eca remove iw4 files not present on remote 2023-12-18 16:49:57 +01:00
Edo
7178f2ed22
Merge pull request from mxve/dependabot/cargo/tokio-1.35.0
Bump tokio from 1.34.0 to 1.35.0
2023-12-12 18:59:48 +01:00
Edo
ad4b5ca8aa
Merge pull request from mxve/dependabot/cargo/colored-2.1.0
Bump colored from 2.0.4 to 2.1.0
2023-12-12 18:59:33 +01:00
Edo
9945fd1b1f
Merge pull request from mxve/dependabot/cargo/openssl-0.10.61
Bump openssl from 0.10.60 to 0.10.61
2023-12-12 18:59:13 +01:00
dependabot[bot]
3f8cadea8e
Bump openssl from 0.10.60 to 0.10.61
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.60 to 0.10.61.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.60...openssl-v0.10.61)

---
updated-dependencies:
- dependency-name: openssl
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 15:47:00 +00:00
dependabot[bot]
08b04425a5
Bump colored from 2.0.4 to 2.1.0
Bumps [colored](https://github.com/mackwic/colored) from 2.0.4 to 2.1.0.
- [Release notes](https://github.com/mackwic/colored/releases)
- [Changelog](https://github.com/colored-rs/colored/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mackwic/colored/compare/v2.0.4...v2.1.0)

---
updated-dependencies:
- dependency-name: colored
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 15:46:49 +00:00
dependabot[bot]
55fd51a1cc
Bump tokio from 1.34.0 to 1.35.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.34.0 to 1.35.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.34.0...tokio-1.35.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 15:46:41 +00:00
Edo
22bac811fc
Merge pull request from mxve/dependabot/cargo/http_req-0.10.2
Bump http_req from 0.10.1 to 0.10.2
2023-12-05 11:33:54 +01:00
dependabot[bot]
bb7786cb0a
Bump http_req from 0.10.1 to 0.10.2
Bumps [http_req](https://github.com/jayjamesjay/http_req) from 0.10.1 to 0.10.2.
- [Release notes](https://github.com/jayjamesjay/http_req/releases)
- [Commits](https://github.com/jayjamesjay/http_req/compare/v0.10.1...v0.10.2)

---
updated-dependencies:
- dependency-name: http_req
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 15:06:18 +00:00
mxve
e3775ef3dc
Merge pull request from mxve/dependabot/cargo/openssl-0.10.60
Bump openssl from 0.10.58 to 0.10.60
2023-11-27 19:03:41 +01:00
dependabot[bot]
62e3569195
Bump openssl from 0.10.58 to 0.10.60
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.58 to 0.10.60.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.58...openssl-v0.10.60)

---
updated-dependencies:
- dependency-name: openssl
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-27 17:59:24 +00:00
mxve
e48090a00c
Merge pull request from mxve/dependabot/cargo/serde-1.0.193
Bump serde from 1.0.190 to 1.0.193
2023-11-27 18:57:47 +01:00
mxve
168e8bc110
Merge pull request from mxve/dependabot/cargo/tokio-1.34.0
Bump tokio from 1.33.0 to 1.34.0
2023-11-27 18:57:27 +01:00
dependabot[bot]
8782642e4e
Bump serde from 1.0.190 to 1.0.193
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.190 to 1.0.193.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.190...v1.0.193)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-27 15:13:31 +00:00
Edo
646c10d95a
maint(cargo): undo addition of "symbols" option since it does nothing 2023-11-27 00:10:45 +01:00
dependabot[bot]
25c3d25b10
Bump tokio from 1.33.0 to 1.34.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.33.0 to 1.34.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.33.0...tokio-1.34.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-24 14:13:08 +00:00
Diavolo
570150777d
v0.6.3 2023-11-24 14:54:26 +01:00
Diavolo
0652f77355
fix: attempt fix on Linux by "vendoring" OpenSSL 2023-11-24 14:44:40 +01:00
mxve
6494af20de Merge branch 'main' of github.com:mxve/alterware-launcher 2023-11-13 15:26:32 +01:00
mxve
35a1d1866f iw4 default arg -stdout; add cfg.engine 2023-11-13 15:26:28 +01:00
mxve
3bbfc9bb81 remove rustls dep
reduces binary size by using os ssl/openssl for http_req and reqwest until  gets done
2023-11-10 00:04:00 +01:00
mxve
3f6de0350b set useragent header 2023-11-07 17:14:40 +01:00
mxve
73c45de4be
Merge pull request from mxve/selfrestart
Selfrestart
2023-11-07 00:20:32 +01:00
mxve
9fe9f58e70 fix linux 2023-11-06 22:33:58 +01:00
mxve
09cec3f1ad v0.6.2 2023-11-06 22:27:53 +01:00
mxve
1e62b5ffad cleanup 2023-11-06 22:27:09 +01:00
mxve
f582cdd625 self restart 2023-11-06 03:20:46 +01:00
mxve
8cc1047367 don't panic if cleaning up left over files fails 2023-11-06 02:08:29 +01:00
mxve
0c004b6f0f v0.6.1 2023-11-06 01:56:49 +01:00
mxve
f0a63a241a fix existing file hashes always being calculated 2023-11-06 01:56:26 +01:00
mxve
76896a22f9 v0.6.0 2023-11-05 17:20:59 +01:00
mxve
7c37334199 improve setup_env on Windows
(real)
935a72e05be1a213a12238f522c8b35f872ecf63
2023-11-04 11:48:04 +01:00
mxve
897c5dae4b lint 2023-11-04 11:35:19 +01:00
mxve
fdcf3d31bd import std::env 2023-11-04 07:48:40 +01:00
Diavolo
935a72e05b
maint(win): improve setup_env on Windows 2023-11-04 07:27:58 +01:00
mxve
174333ff93
Merge pull request from mxve/async
Async
2023-11-02 16:05:10 +01:00
mxve
17454d4dc8 update iw4x first
so we don't have to pass the progressbar to iw4x just to not have it break by a little println
2023-11-02 11:44:08 +01:00
mxve
9a6b7b531a only show filename in pb 2023-11-02 11:31:50 +01:00
mxve
806118862f use String::default() for empty strings
as suggested by diamante quality control ™️
2023-11-02 11:27:43 +01:00
mxve
9a9e64fb0e remove linux i686 2023-11-02 11:05:28 +01:00
mxve
8c407de8fb consume 2023-11-02 10:43:36 +01:00
mxve
7f6027fe2e Merge branch 'main' of github.com:mxve/alterware-launcher 2023-11-02 10:40:45 +01:00
mxve
dacaf322d4 stream files to disk
- Greatly reduced memory usage while downloading
- Added progressbar, download rate
- Added async runtime
- Tweaks to allow usage of async download function
2023-11-02 10:39:58 +01:00
mxve
78fa91ded4
Merge pull request from mxve/dependabot/cargo/serde-1.0.190
Bump serde from 1.0.189 to 1.0.190
2023-10-30 22:00:19 +01:00
mxve
aa69a26f1f
Merge pull request from mxve/dependabot/cargo/http_req-0.10.1
Bump http_req from 0.10.0 to 0.10.1
2023-10-30 22:00:07 +01:00
dependabot[bot]
f2f388e0bb
Bump http_req from 0.10.0 to 0.10.1
Bumps [http_req](https://github.com/jayjamesjay/http_req) from 0.10.0 to 0.10.1.
- [Release notes](https://github.com/jayjamesjay/http_req/releases)
- [Commits](https://github.com/jayjamesjay/http_req/compare/v0.10.0...v0.10.1)

---
updated-dependencies:
- dependency-name: http_req
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 15:31:10 +00:00
dependabot[bot]
9cf7049aaa
Bump serde from 1.0.189 to 1.0.190
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.189 to 1.0.190.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.189...v1.0.190)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 15:30:54 +00:00
mxve
f609a53377 dc 2023-10-28 20:14:39 +02:00
mxve
24a745abff typo 2023-10-28 19:49:21 +02:00
mxve
58b57f48ad clippy 2023-10-28 19:38:53 +02:00
mxve
9c26679a5a print download size 2023-10-28 19:35:28 +02:00
mxve
ca836bbda6 add av info on permission denied 2023-10-26 06:25:12 +02:00
mxve
360d2376e1
Merge pull request from mxve/dependabot/cargo/serde-1.0.189
Bump serde from 1.0.188 to 1.0.189
2023-10-16 17:46:15 +02:00
mxve
0b60b2a893
Merge pull request from mxve/dependabot/cargo/semver-1.0.20
Bump semver from 1.0.19 to 1.0.20
2023-10-16 17:46:08 +02:00
dependabot[bot]
cddc697e89
Bump semver from 1.0.19 to 1.0.20
Bumps [semver](https://github.com/dtolnay/semver) from 1.0.19 to 1.0.20.
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](https://github.com/dtolnay/semver/compare/1.0.19...1.0.20)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 15:07:26 +00:00
dependabot[bot]
ec1b580b21
Bump serde from 1.0.188 to 1.0.189
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.188 to 1.0.189.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.188...v1.0.189)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 15:07:20 +00:00
mxve
eeacb15d6f update actions 2023-10-16 16:11:56 +02:00
mxve
4273d00417
Merge pull request from mxve/dependabot/cargo/http_req-0.10.0
Bump http_req from 0.9.3 to 0.10.0
2023-10-09 18:29:43 +02:00
dependabot[bot]
9596c5d491
Bump http_req from 0.9.3 to 0.10.0
Bumps [http_req](https://github.com/jayjamesjay/http_req) from 0.9.3 to 0.10.0.
- [Release notes](https://github.com/jayjamesjay/http_req/releases)
- [Commits](https://github.com/jayjamesjay/http_req/compare/v0.9.3...v0.10.0)

---
updated-dependencies:
- dependency-name: http_req
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 15:58:32 +00:00
mxve
123a8b7caf add client-args.md; document config file 2023-10-07 13:24:26 +02:00
mxve
141b60393a v0.5.3 2023-10-06 09:03:34 +02:00
mxve
4bdecabbe5 misc 2023-10-06 08:34:42 +02:00
mxve
6a8c11b101 add changelog link 2023-10-06 08:30:29 +02:00
mxve
12526d7f36 handle notfound; give tips to fix permission denied 2023-10-02 15:49:01 +02:00
mxve
f3e7a42043 Create config path if it doesn't exist; don't panic 2023-10-02 15:48:22 +02:00
mxve
fddd146361 improve logging of http errors 2023-10-02 04:39:49 +02:00
mxve
b86d252c4b handle shortcut creation errors 2023-10-01 00:36:12 +02:00
mxve
dee9011812 set matrix target 2023-09-25 18:57:51 +02:00
mxve
96bc7a73e5 v0.5.2 2023-09-25 18:52:35 +02:00
mxve
f756e818b6 Merge branch 'main' of github.com:mxve/alterware-launcher 2023-09-25 18:51:54 +02:00
mxve
686a6e6352 build i686 target 2023-09-25 18:51:43 +02:00
mxve
a56b7f12ee
Merge pull request from mxve/dependabot/cargo/semver-1.0.19
Bump semver from 1.0.18 to 1.0.19
2023-09-25 17:51:50 +02:00
mxve
e6cc1a9e34 self-replace 1.3.7 2023-09-25 17:51:21 +02:00
dependabot[bot]
3e5c0cc4ed
Bump semver from 1.0.18 to 1.0.19
Bumps [semver](https://github.com/dtolnay/semver) from 1.0.18 to 1.0.19.
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](https://github.com/dtolnay/semver/compare/1.0.18...1.0.19)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-25 15:28:54 +00:00
mxve
5fa3332266 don't ask if --bonus set 2023-09-23 01:29:04 +02:00
mxve
66b7187c0e
Merge pull request from mxve/dependabot/cargo/http_req-0.9.3
Bump http_req from 0.9.2 to 0.9.3
2023-09-18 20:12:38 +02:00
mxve
eb8ada5040
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.107
Bump serde_json from 1.0.106 to 1.0.107
2023-09-18 20:12:30 +02:00
dependabot[bot]
e34939f303
Bump serde_json from 1.0.106 to 1.0.107
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.106 to 1.0.107.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.106...v1.0.107)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 15:05:36 +00:00
dependabot[bot]
1e7f2f6514
Bump http_req from 0.9.2 to 0.9.3
Bumps [http_req](https://github.com/jayjamesjay/http_req) from 0.9.2 to 0.9.3.
- [Release notes](https://github.com/jayjamesjay/http_req/releases)
- [Commits](https://github.com/jayjamesjay/http_req/compare/v0.9.2...v0.9.3)

---
updated-dependencies:
- dependency-name: http_req
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 15:05:29 +00:00
mxve
d50f3b83e9 pwettify comfig file :3 2023-09-18 16:29:37 +02:00
mxve
ce18aea5aa v0.5.1 2023-09-18 12:27:01 +02:00
mxve
93d1c9841a set current_dir when launching 2023-09-18 12:26:47 +02:00
mxve
d8beb754fa v0.5.0 2023-09-17 17:49:50 +02:00
mxve
af78ebfcaf print passed args when launching; trim args 2023-09-16 16:41:18 +02:00
Edo
79c48c240b
Merge pull request from diamante0018/main
maint(main): simply return out of the main function
2023-09-15 19:22:11 +02:00
Edo
fe6e3c227f
maint(main): simply return out of the main function
instead of calling exit()
2023-09-15 19:19:04 +02:00
mxve
65f106541c update readme 2023-09-15 01:48:04 +02:00
mxve
428c75bbf2 add --help, --version/-v 2023-09-15 01:45:47 +02:00
mxve
d47ebbcb28 allow loading client args from config 2023-09-14 10:32:03 +02:00
mxve
a1004405ca 💩 2023-09-14 10:25:44 +02:00
mxve
3efecdad74
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.106
Bump serde_json from 1.0.105 to 1.0.106
2023-09-14 10:24:26 +02:00
mxve
be3c45b79d add --pass to allow passing args to the client 2023-09-14 10:23:48 +02:00
mxve
b830ab7085 remove debug print 2023-09-14 10:09:21 +02:00
mxve
be3e7c8ac1 strip value AND arg 😑 2023-09-14 10:08:26 +02:00
mxve
a5af98b0f3 add --path, -p 2023-09-14 09:44:35 +02:00
mxve
0b4c6325c7 prepend args with --, -, add short args 2023-09-14 09:37:35 +02:00
mxve
e1b76c8e04 update readme 2023-09-12 21:35:50 +02:00
mxve
26bb7567de store file hashes; added "force" arg
close 
2023-09-12 21:28:53 +02:00
dependabot[bot]
0814c99363
Bump serde_json from 1.0.105 to 1.0.106
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.105 to 1.0.106.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.105...v1.0.106)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 15:16:24 +00:00
mxve
f23acb6788 improve progress prints 2023-09-11 13:05:18 +02:00
mxve
813d0613c1 Show more progress 2023-09-10 20:00:04 +02:00
mxve
349efa4e43 download bonus content 2023-09-10 18:29:30 +02:00
mxve
86b0bb1b7a use config values 2023-09-10 17:36:01 +02:00
mxve
32b1272ff6 cfg 2023-09-10 16:58:42 +02:00
mxve
ab8461b6df v0.4.8 2023-09-10 12:39:44 +02:00
mxve
a7008ecbd5 check first dir when matching files to download 2023-09-10 12:38:21 +02:00
mxve
a76efc6e6f update readme 2023-09-03 19:03:46 +02:00
mxve
932c41d369 misc
- reduce github calls
- latest_tag returns full tag
- rev_to_int default to 0 on strip_prefix
- lint
2023-08-30 13:06:49 +02:00
mxve
0ec2a44082 github::latest -> latest_tag 2023-08-30 12:46:13 +02:00
mxve
94b6d26ddd steamlocate 2.0.0-alpha.0 2023-08-30 12:45:10 +02:00
mxve
7bc677cf81 v0.4.7 2023-08-29 22:13:05 +02:00
mxve
1f76f8529c update iw4x if dll doesn't exist 2023-08-29 22:12:42 +02:00
mxve
afda8902df whoops/v0.4.6 2023-08-29 22:00:31 +02:00
mxve
bb5b3f8bf9 v0.4.6 2023-08-29 21:57:35 +02:00
mxve
64c63bf24f obtain iw4x.dll from iw4x/iw4x-client 2023-08-29 21:53:47 +02:00
mxve
9dc569e646 update io::unzip 2023-08-29 06:59:04 +02:00
mxve
00c3740af0 Merge branch 'main' of github.com:mxve/alterware-launcher 2023-08-29 06:51:52 +02:00
mxve
42f48bbaf4 add io::unzip 2023-08-29 06:51:44 +02:00
mxve
63f160ff4a seperate into multiple source files 2023-08-29 06:51:40 +02:00
mxve
ff13d11934
Merge pull request from mxve/dependabot/cargo/serde-1.0.188
Bump serde from 1.0.185 to 1.0.188
2023-08-28 22:38:55 +02:00
mxve
2cec22e170
Merge pull request from mxve/dependabot/cargo/self-replace-1.3.6
Bump self-replace from 1.3.5 to 1.3.6
2023-08-28 22:38:47 +02:00
dependabot[bot]
7a2c6c7e37
Bump serde from 1.0.185 to 1.0.188
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.185 to 1.0.188.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.185...v1.0.188)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 15:52:58 +00:00
dependabot[bot]
416de17876
Bump self-replace from 1.3.5 to 1.3.6
Bumps [self-replace](https://github.com/mitsuhiko/self-replace) from 1.3.5 to 1.3.6.
- [Changelog](https://github.com/mitsuhiko/self-replace/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mitsuhiko/self-replace/compare/1.3.5...1.3.6)

---
updated-dependencies:
- dependency-name: self-replace
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 15:52:49 +00:00
mxve
ced346f776 v0.4.5 2023-08-26 21:17:01 +02:00
mxve
030c869fec linting 2023-08-26 20:59:38 +02:00
mxve
5ad73dcc1c feat: manual client selection
fix: crash if steam not installed/steamdir is none
2023-08-26 20:53:41 +02:00
mxve
32f9fc2afe restart required ex.code 101->201
rust panic returns 101, so this wasn't a good choice
2023-08-22 11:37:34 +02:00
mxve
d8609fd7b1
Merge pull request from mxve/dependabot/cargo/serde-1.0.185
Bump serde from 1.0.183 to 1.0.185
2023-08-21 17:31:09 +02:00
dependabot[bot]
7ea4db486b
Bump serde from 1.0.183 to 1.0.185
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.183 to 1.0.185.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.183...v1.0.185)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 15:26:04 +00:00
mxve
31d9f5497e
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.105
Bump serde_json from 1.0.104 to 1.0.105
2023-08-21 17:25:29 +02:00
dependabot[bot]
917aa5cf6f
Bump serde_json from 1.0.104 to 1.0.105
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.104 to 1.0.105.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.104...v1.0.105)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 15:10:09 +00:00
mxve
c7da419866 v0.4.4 2023-08-18 14:38:15 +02:00
mxve
86b969fa26 Don't ask what client to launch if update is set 2023-08-18 13:36:06 +02:00
mxve
618227a484 v0.4.3 2023-08-18 12:53:28 +02:00
mxve
5c3bd72482 update after windows setup; match cur dir to steam dirs 2023-08-18 12:51:51 +02:00
mxve
2ccb17a342 v0.4.2 2023-08-17 20:26:25 +02:00
mxve
f98e9ffed2 fix: unix.. again 2023-08-17 20:26:08 +02:00
mxve
58423863f5 return 101 when restart is required after self-update 2023-08-17 18:32:32 +02:00
mxve
f787feed05 v0.4.1 2023-08-16 13:01:32 +02:00
mxve
c8abf1567f create release as draft 2023-08-16 13:01:25 +02:00
mxve
5847b6a28a don't copy if current & target path are the same 2023-08-16 13:00:15 +02:00
mxve
0dda3d295f remove cache busting 2023-08-16 12:57:27 +02:00
mxve
ea209776b3
Merge pull request from mxve/build/symbols
build: add symbols
2023-08-15 19:05:22 +02:00
Edo
e3d13df76a
build: add symbols 2023-08-15 19:03:38 +02:00
mxve
4c4da71f6a v0.4.0 2023-08-15 13:02:32 +02:00
mxve
d11326ffde fix: remove windows target from get_input 2023-08-15 11:13:59 +02:00
mxve
ed82e072d0 fix: don't run setup_client_links on unix 2023-08-15 11:10:40 +02:00
mxve
39039c842f Merge branch 'main' of github.com:mxve/alterware-launcher 2023-08-15 09:45:21 +02:00
mxve
35ebdd4118 feat: support multiple clients per game
- Game.client changed from str to Vec<str>
- Create launch shortcuts for multi-client games
- Add prompt if multiple clients available and none specified
2023-08-15 09:45:18 +02:00
mxve
1efe17dc9e
bruh 2023-08-12 15:35:41 +02:00
mxve
b8dd271aec Update readme 2023-08-12 15:30:28 +02:00
mxve
e90255539a v0.3.1 2023-08-12 15:27:39 +02:00
mxve
35da7817d1 feat(flag): skip-launcher-update 2023-08-12 15:26:35 +02:00
mxve
02f98c732c v0.3.0 2023-08-12 15:09:26 +02:00
mxve
7fd9381629 fix: don't even look at it 2023-08-12 14:33:25 +02:00
mxve
0a3edba1ba fix: unix build 2023-08-12 14:31:58 +02:00
mxve
9205c0b12b feat: self-update
closes 

- launcher updates itself (only on windows target for now)
- added cache buster to games.json request
- rearranged some functions
- file description is now "AlterWare Launcher" as it shows up in the task manager
2023-08-12 14:08:59 +02:00
mxve
5da40e87a5 mark get_input as windows target 2023-08-12 06:41:08 +02:00
mxve
dc36f83a9f Merge branch 'main' of github.com:mxve/alterware-launcher 2023-08-12 06:30:08 +02:00
mxve
bef4c64c81 feat(win): setup for installed steam games
steamlocate requires steamy-vdf which requires a in the future unsupported version of nom (1.2.4). This should get fixed with a future release of steamlocate
https://github.com/WilliamVenner/steamlocate-rs/issues/19
2023-08-12 06:30:02 +02:00
mxve
ff43574c87
Merge pull request from mxve/dependabot/cargo/serde-1.0.183
Bump serde from 1.0.179 to 1.0.183
2023-08-08 02:29:59 +02:00
dependabot[bot]
e296609ff3
Bump serde from 1.0.179 to 1.0.183
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.179 to 1.0.183.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.179...v1.0.183)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-07 15:23:26 +00:00
mxve
bb1ab05588 check for launcher update 2023-08-03 02:49:55 +02:00
mxve
f5216d7e29
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.104
Bump serde_json from 1.0.103 to 1.0.104
2023-07-31 22:44:19 +02:00
dependabot[bot]
a389b6d9fa
Bump serde_json from 1.0.103 to 1.0.104
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.103 to 1.0.104.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.103...v1.0.104)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-31 20:10:02 +00:00
mxve
97f24c27bb
Merge pull request from mxve/dependabot/cargo/serde-1.0.179
Bump serde from 1.0.175 to 1.0.179
2023-07-31 22:09:28 +02:00
dependabot[bot]
66f905e8d7
Bump serde from 1.0.175 to 1.0.179
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.175 to 1.0.179.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.175...v1.0.179)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-31 15:37:10 +00:00
mxve
b46065a800 minor cleanup 2023-07-25 03:24:52 +02:00
mxve
a5d3d9162e
Merge pull request from mxve/dependabot/cargo/serde-1.0.175
Bump serde from 1.0.171 to 1.0.175
2023-07-24 18:14:48 +02:00
dependabot[bot]
b2efdfd4b2
Bump serde from 1.0.171 to 1.0.175
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.171 to 1.0.175.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.171...v1.0.175)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-24 15:40:30 +00:00
mxve
bc3eb8e5ba
dependabot daily -> weekly 2023-07-19 08:54:07 +02:00
mxve
c7d8035eab
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.103
Bump serde_json from 1.0.102 to 1.0.103
2023-07-19 08:52:21 +02:00
dependabot[bot]
753f60b83d
Bump serde_json from 1.0.102 to 1.0.103
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.102 to 1.0.103.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.102...v1.0.103)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 15:12:34 +00:00
Edo
21acf7893d
fix: remove return statement 2023-07-13 11:18:45 +02:00
mxve
389643078d
Merge pull request from diamante0018/main
feat: use current time as cache busting method
2023-07-13 10:39:16 +02:00
mxve
e95e31610e
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.102
Bump serde_json from 1.0.100 to 1.0.102
2023-07-13 10:39:06 +02:00
dependabot[bot]
06904102a4
Bump serde_json from 1.0.100 to 1.0.102
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.100 to 1.0.102.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.100...v1.0.102)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-13 08:37:53 +00:00
mxve
e89f70e399
Merge pull request from mxve/dependabot/cargo/serde-1.0.171
Bump serde from 1.0.167 to 1.0.171
2023-07-13 10:36:56 +02:00
mxve
4620de247c
Merge pull request from mxve/dependabot/cargo/http_req-0.9.2
Bump http_req from 0.9.1 to 0.9.2
2023-07-13 10:36:48 +02:00
Diavolo
27102f810a
feat: use current time as cache busting method 2023-07-13 10:31:23 +02:00
dependabot[bot]
12550fd524
Bump serde from 1.0.167 to 1.0.171
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.167 to 1.0.171.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.167...v1.0.171)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 16:08:19 +00:00
dependabot[bot]
53bad9c7c4
Bump http_req from 0.9.1 to 0.9.2
Bumps [http_req](https://github.com/jayjamesjay/http_req) from 0.9.1 to 0.9.2.
- [Release notes](https://github.com/jayjamesjay/http_req/releases)
- [Commits](https://github.com/jayjamesjay/http_req/compare/v0.9.1...v0.9.2)

---
updated-dependencies:
- dependency-name: http_req
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 16:08:13 +00:00
mxve
dd3d1fd82b
Merge pull request from mxve/dependabot/cargo/serde-1.0.167
Bump serde from 1.0.166 to 1.0.167
2023-07-07 22:09:54 +02:00
dependabot[bot]
ee52e616c0
Bump serde from 1.0.166 to 1.0.167
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.166 to 1.0.167.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.166...v1.0.167)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-07 15:26:08 +00:00
mxve
3a393776a3
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.100
Bump serde_json from 1.0.99 to 1.0.100
2023-07-05 18:34:45 +02:00
dependabot[bot]
62e8fc02ed
Bump serde_json from 1.0.99 to 1.0.100
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.99 to 1.0.100.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.99...v1.0.100)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 16:05:39 +00:00
mxve
8184d468bc
Merge pull request from mxve/dependabot/cargo/serde-1.0.166
Bump serde from 1.0.164 to 1.0.166
2023-07-05 03:57:07 +02:00
dependabot[bot]
58b361ed45
Bump serde from 1.0.164 to 1.0.166
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.164 to 1.0.166.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.164...v1.0.166)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-04 15:32:28 +00:00
mxve
2289bcaa87 Revert "windows self-update"
This reverts commit cee51300b27998da0e2351f6f011980d436286e6.
2023-06-28 15:13:41 +02:00
mxve
23dc1c085c
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.99
Bump serde_json from 1.0.97 to 1.0.99
2023-06-28 13:09:40 +02:00
dependabot[bot]
13052d6727
Bump serde_json from 1.0.97 to 1.0.99
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.97 to 1.0.99.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.97...v1.0.99)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-26 16:06:00 +00:00
mxve
f07a5684d3 delete update.bat 2023-06-22 16:48:43 +02:00
mxve
cee51300b2 windows self-update 2023-06-22 16:45:00 +02:00
mxve
a2be263a7b
Merge pull request from mxve/dependabot/cargo/serde_json-1.0.97
Bump serde_json from 1.0.96 to 1.0.97
2023-06-16 18:13:57 +02:00
dependabot[bot]
000ebd466a
Bump serde_json from 1.0.96 to 1.0.97
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.96 to 1.0.97.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.96...v1.0.97)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-16 16:04:00 +00:00
14 changed files with 529 additions and 487 deletions

@ -21,10 +21,14 @@ jobs:
include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-20.04
- target: aarch64-unknown-linux-gnu
os: ubuntu-20.04
- target: x86_64-pc-windows-msvc
os: windows-latest
- target: i686-pc-windows-msvc
os: windows-latest
- target: x86_64-apple-darwin
os: macos-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
@ -35,4 +39,4 @@ jobs:
tar: unix
zip: windows
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

400
Cargo.lock generated

@ -17,24 +17,15 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "aho-corasick"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c"
dependencies = [
"memchr",
]
[[package]]
name = "alterware-launcher"
version = "0.6.2"
version = "0.6.10"
dependencies = [
"colored",
"futures-util",
"http_req",
"indicatif",
"mslnk",
"openssl",
"rand",
"reqwest",
"self-replace",
@ -127,11 +118,10 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "colored"
version = "2.0.4"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
dependencies = [
"is-terminal",
"lazy_static",
"windows-sys 0.48.0",
]
@ -174,6 +164,21 @@ dependencies = [
"libc",
]
[[package]]
name = "crc"
version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
dependencies = [
"crc-catalog",
]
[[package]]
name = "crc-catalog"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
[[package]]
name = "crypto-common"
version = "0.1.6"
@ -196,22 +201,23 @@ dependencies = [
[[package]]
name = "dirs"
version = "3.0.2"
version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
dependencies = [
"dirs-sys",
]
[[package]]
name = "dirs-sys"
version = "0.3.7"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
dependencies = [
"libc",
"option-ext",
"redox_users",
"winapi",
"windows-sys 0.48.0",
]
[[package]]
@ -306,21 +312,21 @@ dependencies = [
[[package]]
name = "futures-core"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
[[package]]
name = "futures-io"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
[[package]]
name = "futures-macro"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
@ -329,21 +335,21 @@ dependencies = [
[[package]]
name = "futures-sink"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
[[package]]
name = "futures-task"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
[[package]]
name = "futures-util"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
dependencies = [
"futures-core",
"futures-io",
@ -436,19 +442,6 @@ dependencies = [
"pin-project-lite",
]
[[package]]
name = "http_req"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a536d8715c89f5647abd1563c490b75a76221de4b57833a1f243cf5c5fe7860c"
dependencies = [
"rustls",
"rustls-pemfile",
"unicase",
"webpki",
"webpki-roots",
]
[[package]]
name = "httparse"
version = "1.8.0"
@ -520,9 +513,9 @@ dependencies = [
[[package]]
name = "indicatif"
version = "0.17.7"
version = "0.17.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25"
checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
dependencies = [
"console",
"instant",
@ -546,17 +539,6 @@ version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
[[package]]
name = "is-terminal"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
dependencies = [
"hermit-abi",
"rustix",
"windows-sys 0.48.0",
]
[[package]]
name = "itoa"
version = "1.0.6"
@ -565,18 +547,18 @@ checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
[[package]]
name = "js-sys"
version = "0.3.63"
version = "0.3.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790"
checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "keyvalues-parser"
version = "0.1.0"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d990301996c856ea07a84bc291e76f1273db52683663efc05c8d355976897e5"
checksum = "7e4c8354918309196302015ac9cae43362f1a13d0d5c5539a33b4c2fd2cd6d25"
dependencies = [
"pest",
"pest_derive",
@ -585,14 +567,11 @@ dependencies = [
[[package]]
name = "keyvalues-serde"
version = "0.1.0"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da419ac133bb3ddf0dbf9c12fcc0ce01d994fcb65f6f1713faf15cc689320b5f"
checksum = "0447866c47c00f8bd1949618e8f63017cf93e985b4684dc28d784527e2882390"
dependencies = [
"keyvalues-parser",
"once_cell",
"paste",
"regex",
"serde",
"thiserror",
]
@ -605,9 +584,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.147"
version = "0.2.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
[[package]]
name = "linux-raw-sys"
@ -644,9 +623,9 @@ dependencies = [
[[package]]
name = "mio"
version = "0.8.8"
version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
dependencies = [
"libc",
"wasi",
@ -715,9 +694,9 @@ checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b"
[[package]]
name = "openssl"
version = "0.10.58"
version = "0.10.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9dfc0783362704e97ef3bd24261995a699468440099ef95d869b4d9732f829a"
checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
dependencies = [
"bitflags 2.4.0",
"cfg-if",
@ -746,22 +725,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "openssl-sys"
version = "0.9.94"
name = "openssl-src"
version = "300.1.6+3.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f55da20b29f956fb01f0add8683eb26ee13ebe3ebd935e49898717c6b4b2830"
checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085"
dependencies = [
"cc",
]
[[package]]
name = "openssl-sys"
version = "0.9.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
dependencies = [
"cc",
"libc",
"openssl-src",
"pkg-config",
"vcpkg",
]
[[package]]
name = "paste"
version = "1.0.14"
name = "option-ext"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
[[package]]
name = "percent-encoding"
@ -845,18 +834,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "proc-macro2"
version = "1.0.63"
version = "1.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.28"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
@ -920,40 +909,11 @@ dependencies = [
"thiserror",
]
[[package]]
name = "regex"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
dependencies = [
"aho-corasick",
"memchr",
"regex-automata",
"regex-syntax",
]
[[package]]
name = "regex-automata"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
[[package]]
name = "reqwest"
version = "0.11.22"
version = "0.11.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
dependencies = [
"base64",
"bytes",
@ -973,9 +933,11 @@ dependencies = [
"once_cell",
"percent-encoding",
"pin-project-lite",
"rustls-pemfile",
"serde",
"serde_json",
"serde_urlencoded",
"sync_wrapper",
"system-configuration",
"tokio",
"tokio-native-tls",
@ -989,35 +951,6 @@ dependencies = [
"winreg 0.50.0",
]
[[package]]
name = "ring"
version = "0.16.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
dependencies = [
"cc",
"libc",
"once_cell",
"spin 0.5.2",
"untrusted 0.7.1",
"web-sys",
"winapi",
]
[[package]]
name = "ring"
version = "0.17.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "911b295d2d302948838c8ac142da1ee09fa7863163b44e6715bc9357905878b8"
dependencies = [
"cc",
"getrandom",
"libc",
"spin 0.9.8",
"untrusted 0.9.0",
"windows-sys 0.48.0",
]
[[package]]
name = "rustc-demangle"
version = "0.1.23"
@ -1037,37 +970,15 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "rustls"
version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
dependencies = [
"log",
"ring 0.16.20",
"rustls-webpki",
"sct",
]
[[package]]
name = "rustls-pemfile"
version = "1.0.3"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
dependencies = [
"base64",
]
[[package]]
name = "rustls-webpki"
version = "0.101.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe"
dependencies = [
"ring 0.16.20",
"untrusted 0.7.1",
]
[[package]]
name = "ryu"
version = "1.0.13"
@ -1083,16 +994,6 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "sct"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
dependencies = [
"ring 0.16.20",
"untrusted 0.7.1",
]
[[package]]
name = "security-framework"
version = "2.9.2"
@ -1129,24 +1030,24 @@ dependencies = [
[[package]]
name = "semver"
version = "1.0.20"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
[[package]]
name = "serde"
version = "1.0.190"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7"
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.190"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
@ -1155,9 +1056,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.107"
version = "1.0.114"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
dependencies = [
"itoa",
"ryu",
@ -1214,50 +1115,45 @@ dependencies = [
[[package]]
name = "socket2"
version = "0.5.4"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
dependencies = [
"libc",
"windows-sys 0.48.0",
]
[[package]]
name = "spin"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]]
name = "spin"
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
[[package]]
name = "steamlocate"
version = "2.0.0-alpha.0"
version = "2.0.0-beta.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b1568c4a70a26c4373fe1131ffa4eff055459631b6e40c6bc118615f2d870c3"
checksum = "c3b6a4810c4e7fecb0123a9a8ba99b335c17d92e636c265ef99108ee4734c812"
dependencies = [
"crc",
"dirs",
"keyvalues-parser",
"keyvalues-serde",
"serde",
"winreg 0.10.1",
"winreg 0.51.0",
]
[[package]]
name = "syn"
version = "2.0.28"
version = "2.0.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "sync_wrapper"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
[[package]]
name = "system-configuration"
version = "0.5.1"
@ -1294,18 +1190,18 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.40"
version = "1.0.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.40"
version = "1.0.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df"
dependencies = [
"proc-macro2",
"quote",
@ -1329,9 +1225,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.33.0"
version = "1.36.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
dependencies = [
"backtrace",
"bytes",
@ -1339,16 +1235,16 @@ dependencies = [
"mio",
"num_cpus",
"pin-project-lite",
"socket2 0.5.4",
"socket2 0.5.5",
"tokio-macros",
"windows-sys 0.48.0",
]
[[package]]
name = "tokio-macros"
version = "2.1.0"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2",
"quote",
@ -1431,15 +1327,6 @@ version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
[[package]]
name = "unicase"
version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
dependencies = [
"version_check",
]
[[package]]
name = "unicode-bidi"
version = "0.3.13"
@ -1467,18 +1354,6 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
[[package]]
name = "untrusted"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
[[package]]
name = "untrusted"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "url"
version = "2.4.1"
@ -1519,9 +1394,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
version = "0.2.86"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73"
checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
@ -1529,9 +1404,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.86"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb"
checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
dependencies = [
"bumpalo",
"log",
@ -1544,9 +1419,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
version = "0.4.36"
version = "0.4.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e"
checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
dependencies = [
"cfg-if",
"js-sys",
@ -1556,9 +1431,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.86"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258"
checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@ -1566,9 +1441,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.86"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
dependencies = [
"proc-macro2",
"quote",
@ -1579,15 +1454,15 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.86"
version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93"
checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
[[package]]
name = "wasm-streams"
version = "0.3.0"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
dependencies = [
"futures-util",
"js-sys",
@ -1598,30 +1473,14 @@ dependencies = [
[[package]]
name = "web-sys"
version = "0.3.63"
version = "0.3.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2"
checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
dependencies = [
"js-sys",
"wasm-bindgen",
]
[[package]]
name = "webpki"
version = "0.22.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
dependencies = [
"ring 0.17.2",
"untrusted 0.9.0",
]
[[package]]
name = "webpki-roots"
version = "0.25.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
[[package]]
name = "winapi"
version = "0.3.9"
@ -1778,18 +1637,19 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
[[package]]
name = "winreg"
version = "0.10.1"
version = "0.50.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
dependencies = [
"winapi",
"cfg-if",
"windows-sys 0.48.0",
]
[[package]]
name = "winreg"
version = "0.50.0"
version = "0.51.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc"
dependencies = [
"cfg-if",
"windows-sys 0.48.0",

@ -1,36 +1,33 @@
[package]
name = "alterware-launcher"
version = "0.6.2"
version = "0.6.10"
edition = "2021"
build = "res/build.rs"
[profile.release]
opt-level = "s"
# Symbols are a nice thing
debug = true
panic = "abort"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
http_req = { version = "0.10.1", default-features = false, features = [
"rust-tls",
] }
sha1_smol = "1.0.0"
serde = { version = "1.0.190", features = ["derive"] }
serde_json = "1.0.107"
serde = { version = "1.0.197", features = ["derive"] }
serde_json = "1.0.114"
rand = "0.8.5"
semver = "1.0.20"
colored = "2.0.4"
reqwest = { version = "0.11.22", features = ["stream"] }
futures-util = "0.3.29"
indicatif = "0.17.7"
tokio = {version="1.33.0", features = ["rt-multi-thread", "macros"]}
semver = "1.0.22"
colored = "2.1.0"
reqwest = { version = "0.11.24", features = ["stream"] }
futures-util = "0.3.30"
indicatif = "0.17.8"
tokio = {version="1.36.0", features = ["rt-multi-thread", "macros"]}
[target.'cfg(unix)'.dependencies]
openssl = { version = "0.10.64", default-features = false, features = ["vendored"] }
[target.'cfg(windows)'.dependencies]
steamlocate = "2.0.0-alpha.0"
steamlocate = "=2.0.0-beta.2"
mslnk = "0.1.8"
self-replace = "1.3.7"

@ -4,13 +4,16 @@
##### IW4x | IW4-SP | IW5-Mod | IW6-Mod | S1-Mod
![GitHub tag (with filter)](https://img.shields.io/github/v/tag/mxve/alterware-launcher?filter=!v*-pre&style=flat-square&label=Latest%20release&labelColor=F3F8FF&color=E26EE5) ![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/mxve/alterware-launcher?style=flat-square&label=Release%20date&labelColor=F3F8FF&color=E26EE5) ![GitHub all releases](https://img.shields.io/github/downloads/mxve/alterware-launcher/total?style=flat-square&label=Total%20downloads&labelColor=F3F8FF&color=E26EE5)
---
#### Installation
## Installation
1. Download the [latest alterware-launcher.exe](https://github.com/mxve/alterware-launcher/releases/latest/download/alterware-launcher.exe)
2. Place alterware-launcher.exe in the game directory
3. Run alterware-launcher.exe, after updating the game will launch automatically
1. Download the game from [Steam](https://store.steampowered.com/)
2. Download the [latest alterware-launcher.exe](https://github.com/mxve/alterware-launcher/releases/latest/download/alterware-launcher.exe)
3. Place alterware-launcher.exe in the game directory
4. Run alterware-launcher.exe, after updating the game will launch automatically
---
@ -35,6 +38,8 @@
- See [client-args.md](client-args.md)
- ```--version```, ```-v```
- Print the launcher version
- ```--ignore-required-files```
- Install client even if required files are missing
Example: ```alterware-launcher.exe iw4x --bonus -u --path "C:\Games\IW4x" --pass "-console"```
@ -63,6 +68,9 @@ alterware-launcher.json
- ```args```
- See --pass
- Default: ""
- ```use_https```
- Use HTTPS for downloads
- Default: false
---
@ -82,13 +90,6 @@ Visit the [AlterWare Forum](https://forum.alterware.dev/) or [Discord](https://d
---
### Note for server owners:
When the launcher updates itself it needs to be restarted. It will return exit code 201 in this case.
When the launcher updates itself __on Windows__ it will restart by spawning a new console. If you are automating this process, you should probably use ```--skip-launcher-update``` and download the latest launcher yourself from [here](https://github.com/mxve/alterware-launcher/releases/latest/download/alterware-launcher.exe).
```
@echo off
:loop
start /wait alterware-launcher.exe --update
if %errorlevel% equ 201 (
goto loop
)
```
The linux build does __not__ update itself.

@ -36,6 +36,17 @@ pub fn save_value(config_path: PathBuf, key: &str, value: bool) {
"download_bonus_content" => config.download_bonus_content = value,
"ask_bonus_content" => config.ask_bonus_content = value,
"force_update" => config.force_update = value,
"use_https" => config.use_https = value,
_ => (),
}
save(config_path, config);
}
pub fn save_value_s(config_path: PathBuf, key: &str, value: String) {
let mut config = load(config_path.clone());
match key {
"args" => config.args = value.to_string(),
"engine" => config.engine = value.to_string(),
_ => (),
}
save(config_path, config);

@ -1,19 +1,21 @@
use semver::Version;
pub fn latest_tag(owner: &str, repo: &str) -> String {
let github_body = crate::http::get_body_string(
pub async fn latest_tag(owner: &str, repo: &str) -> String {
let github_body = crate::http_async::get_body_string(
format!(
"https://api.github.com/repos/{}/{}/releases/latest",
owner, repo
)
.as_str(),
);
)
.await
.unwrap();
let github_json: serde_json::Value = serde_json::from_str(&github_body).unwrap();
github_json["tag_name"].to_string().replace('"', "")
}
pub fn latest_version(owner: &str, repo: &str) -> Version {
let tag = latest_tag(owner, repo).replace('v', "");
pub async fn latest_version(owner: &str, repo: &str) -> Version {
let tag = latest_tag(owner, repo).await.replace('v', "");
Version::parse(&tag).unwrap()
}

@ -1,4 +1,4 @@
pub const MASTER: &str = "https://master.alterware.dev";
pub const MASTER: &str = "cdn.alterware.ovh";
pub const GH_OWNER: &str = "mxve";
pub const GH_REPO: &str = "alterware-launcher";
pub const GH_IW4X_OWNER: &str = "iw4x";

@ -1,84 +0,0 @@
use crate::global;
use crate::misc;
use std::{fs, io::Write, path::Path, str};
pub fn get_body(url: &str) -> Vec<u8> {
let mut res: Vec<u8> = Vec::new();
match http_req::request::Request::new(&url.try_into().unwrap())
.header(
"User-Agent",
&format!(
"AlterWare Launcher | github.com/{}/{}",
global::GH_OWNER,
global::GH_REPO
),
)
.send(&mut res)
{
Ok(req) => {
if req.status_code() == http_req::response::StatusCode::new(302)
|| req.status_code() == http_req::response::StatusCode::new(301)
{
let location = req.headers().get("Location").unwrap().as_str();
return get_body(location);
}
if req.status_code() != http_req::response::StatusCode::new(200) {
misc::fatal_error(&format!(
"Could not get body from {}, got {}",
url,
req.status_code()
));
}
}
Err(e) => {
misc::fatal_error(&format!("Could not get body from {}, got:\n{}", url, e));
}
}
res
}
pub fn get_body_string(url: &str) -> String {
String::from_utf8(get_body(url)).unwrap()
}
pub fn download_file(url: &str, file_path: &Path) {
let body = get_body(url);
match fs::File::create(file_path) {
Ok(mut file) => match file.write_all(&body) {
Ok(_) => (),
Err(e) => {
misc::fatal_error(&format!(
"Could not write to file {}, got:\n{}",
file_path.to_str().unwrap(),
e
));
}
},
Err(e) => {
match e.kind() {
std::io::ErrorKind::NotFound => {
fs::create_dir_all(file_path.parent().unwrap()).unwrap();
return download_file(url, file_path);
}
std::io::ErrorKind::PermissionDenied => {
misc::fatal_error(&format!(
"Permission to {} denied.\n Please try:\n 1. Running the launcher as administrator.\n 2. Manually deleting the last downloaded file.\n 3. If your game is in the program files directory try moving it to another location.\n 4. Create an exception/exclusion in your Anti-Virus Software for either the last downloaded file or the entire game directory.\n\n\n{}",
file_path.to_str().unwrap(),
e
));
}
_ => (),
}
misc::fatal_error(&format!(
"Could not create file {}, got:\n{}",
file_path.to_str().unwrap(),
e
));
}
}
}

@ -10,7 +10,7 @@ use reqwest::Client;
use crate::misc;
pub async fn download_file(
pub async fn download_file_progress(
client: &Client,
pb: &ProgressBar,
url: &str,
@ -19,6 +19,14 @@ pub async fn download_file(
) -> Result<(), String> {
let res = client
.get(url)
.header(
"User-Agent",
&format!(
"AlterWare Launcher | github.com/{}/{}",
crate::global::GH_OWNER,
crate::global::GH_REPO
),
)
.send()
.await
.or(Err(format!("Failed to GET from '{}'", &url)))?;
@ -50,3 +58,70 @@ pub async fn download_file(
pb.set_message(String::default());
Ok(())
}
pub async fn download_file(url: &str, path: &PathBuf) -> Result<(), String> {
let client = Client::new();
match client
.get(url)
.header(
"User-Agent",
&format!(
"AlterWare Launcher | github.com/{}/{}",
crate::global::GH_OWNER,
crate::global::GH_REPO
),
)
.send()
.await
{
Ok(res) => {
let body = res.bytes().await.or(Err("Failed to download file"))?;
let mut file = File::create(path).or(Err("Failed to create file"))?;
file.write_all(&body).or(Err("Failed to write to file"))?;
Ok(())
}
Err(e) => {
misc::fatal_error(&format!(
"Could not download file from {}, got:\n{}",
url, e
));
Err("Could not download file".to_string())
}
}
}
pub async fn get_body(url: &str) -> Result<Vec<u8>, String> {
let client = Client::new();
match client
.get(url)
.header(
"User-Agent",
&format!(
"AlterWare Launcher | github.com/{}/{}",
crate::global::GH_OWNER,
crate::global::GH_REPO
),
)
.send()
.await
{
Ok(res) => {
println!(
"[DEBUG] {} {}",
res.status().to_string().bright_yellow(),
url.bright_yellow()
);
let body = res.bytes().await.or(Err("Failed to get body"))?;
Ok(body.to_vec())
}
Err(e) => {
misc::fatal_error(&format!("Could not get body from {}, got:\n{}", url, e));
Err("Could not get body".to_string())
}
}
}
pub async fn get_body_string(url: &str) -> Result<String, String> {
let body = get_body(url).await?;
Ok(String::from_utf8(body).unwrap())
}

@ -1,22 +0,0 @@
use std::{fs, path::Path};
pub fn unzip(zip_path: &Path, out_path: &Path) {
let mut archive = zip::ZipArchive::new(fs::File::open(zip_path).unwrap()).unwrap();
for i in 0..archive.len() {
let mut file = archive.by_index(i).unwrap();
let outpath = out_path.join(file.name());
if (*file.name()).ends_with('/') {
fs::create_dir_all(outpath).unwrap();
} else {
println!("Unpacking {}", file.name());
if let Some(p) = outpath.parent() {
if !p.exists() {
fs::create_dir_all(p).unwrap();
}
}
let mut outfile = fs::File::create(&outpath).unwrap();
std::io::copy(&mut file, &mut outfile).unwrap();
}
}
}

@ -1,6 +1,6 @@
use crate::github;
use crate::global::*;
use crate::http;
use crate::http_async;
use crate::misc;
use colored::*;
@ -14,12 +14,12 @@ pub fn local_revision(dir: &Path) -> u16 {
}
}
pub fn remote_revision() -> u16 {
misc::rev_to_int(&github::latest_tag(GH_IW4X_OWNER, GH_IW4X_REPO))
pub async fn remote_revision() -> u16 {
misc::rev_to_int(&github::latest_tag(GH_IW4X_OWNER, GH_IW4X_REPO).await)
}
pub fn update(dir: &Path) {
let remote = remote_revision();
pub async fn update(dir: &Path) {
let remote = remote_revision().await;
let local = local_revision(dir);
if remote <= local && dir.join("iw4x.dll").exists() {
@ -39,12 +39,14 @@ pub fn update(dir: &Path) {
"Downloading".bright_yellow(),
misc::cute_path(&dir.join("iw4x.dll"))
);
http::download_file(
http_async::download_file(
&format!(
"{}/download/iw4x.dll",
github::latest_release_url(GH_IW4X_OWNER, GH_IW4X_REPO)
),
&dir.join("iw4x.dll"),
);
)
.await
.unwrap();
fs::write(dir.join(".iw4xrevision"), format!("r{}", remote)).unwrap();
}

@ -1,7 +1,6 @@
mod config;
mod github;
mod global;
mod http;
mod http_async;
mod iw4x;
mod misc;
@ -22,17 +21,24 @@ use steamlocate::SteamDir;
#[cfg(windows)]
fn get_installed_games(games: &Vec<Game>) -> Vec<(u32, PathBuf)> {
let mut installed_games = Vec::new();
let mut steamdir = match SteamDir::locate() {
Some(steamdir) => steamdir,
None => {
println!("{}", "Steam not found!".yellow());
let steamdir_result = SteamDir::locate();
let steamdir = match steamdir_result {
Ok(steamdir) => steamdir,
Err(error) => {
println!("Error locating Steam: {}", error);
return installed_games;
}
};
for game in games {
if let Some(app) = steamdir.app(&game.app_id) {
installed_games.push((game.app_id, PathBuf::from(&app.path)));
if let Ok(Some((app, library))) = steamdir.find_app(game.app_id) {
let game_path = library
.path()
.join("steamapps")
.join("common")
.join(&app.install_dir);
installed_games.push((game.app_id, game_path));
}
}
@ -93,14 +99,14 @@ fn setup_desktop_links(path: &Path, game: &Game) {
}
#[cfg(windows)]
async fn auto_install(path: &Path, game: &Game<'_>) {
async fn auto_install(path: &Path, game: &Game<'_>, master_url: &String) {
setup_client_links(game, path);
setup_desktop_links(path, game);
update(game, path, false, false).await;
update(game, path, false, false, None, master_url, None).await;
}
#[cfg(windows)]
async fn windows_launcher_install(games: &Vec<Game<'_>>) {
async fn windows_launcher_install(games: &Vec<Game<'_>>, master_url: &String) {
println!(
"{}",
"No game specified/found. Checking for installed Steam games..".yellow()
@ -114,7 +120,7 @@ async fn windows_launcher_install(games: &Vec<Game<'_>>) {
println!("Found game in current directory.");
println!("Installing AlterWare client for {}.", id);
let game = games.iter().find(|&g| g.app_id == *id).unwrap();
auto_install(path, game).await;
auto_install(path, game, master_url).await;
println!("Installation complete. Please run the launcher again or use a shortcut to launch the game.");
std::io::stdin().read_line(&mut String::new()).unwrap();
std::process::exit(0);
@ -127,13 +133,9 @@ async fn windows_launcher_install(games: &Vec<Game<'_>>) {
println!("{}: {}", id, path.display());
}
println!("Enter the ID of the game you want to install the AlterWare client for, enter 0 for manual selection:");
println!("Enter the ID of the game you want to install the AlterWare client for:");
let input: u32 = misc::stdin().parse().unwrap();
if input == 0 {
return manual_install(games).await;
}
for (id, path) in installed_games.iter() {
if *id == input {
let game = games.iter().find(|&g| g.app_id == input).unwrap();
@ -145,7 +147,7 @@ async fn windows_launcher_install(games: &Vec<Game<'_>>) {
fs::copy(launcher_path, target_path).unwrap();
println!("Launcher copied to {}", path.display());
}
auto_install(path, game).await;
auto_install(path, game, master_url).await;
println!("Installation complete. Please run the launcher again or use a shortcut to launch the game.");
std::io::stdin().read_line(&mut String::new()).unwrap();
break;
@ -153,31 +155,35 @@ async fn windows_launcher_install(games: &Vec<Game<'_>>) {
}
std::process::exit(0);
} else {
manual_install(games).await;
println!(
"No installed games found. Make sure to place the launcher in the game directory."
);
std::io::stdin().read_line(&mut String::new()).unwrap();
std::process::exit(0);
}
}
fn prompt_client_selection(games: &[Game]) -> String {
println!(
"Couldn't detect any games, please select a client to install in the current directory:"
);
for (i, g) in games.iter().enumerate() {
for c in g.client.iter() {
println!("{}: {}", i, c);
}
}
let input: usize = misc::stdin().parse().unwrap();
String::from(games[input].client[0])
}
// fn prompt_client_selection(games: &[Game]) -> String {
// println!(
// "Couldn't detect any games, please select a client to install in the current directory:"
// );
// for (i, g) in games.iter().enumerate() {
// for c in g.client.iter() {
// println!("{}: {}", i, c);
// }
// }
// let input: usize = misc::stdin().parse().unwrap();
// String::from(games[input].client[0])
// }
async fn manual_install(games: &[Game<'_>]) {
let selection = prompt_client_selection(games);
let game = games.iter().find(|&g| g.client[0] == selection).unwrap();
update(game, &env::current_dir().unwrap(), false, false).await;
println!("Installation complete. Please run the launcher again or use a shortcut to launch the game.");
std::io::stdin().read_line(&mut String::new()).unwrap();
std::process::exit(0);
}
// async fn manual_install(games: &[Game<'_>]) {
// let selection = prompt_client_selection(games);
// let game = games.iter().find(|&g| g.client[0] == selection).unwrap();
// update(game, &env::current_dir().unwrap(), false, false).await;
// println!("Installation complete. Please run the launcher again or use a shortcut to launch the game.");
// std::io::stdin().read_line(&mut String::new()).unwrap();
// std::process::exit(0);
// }
fn total_download_size(cdn_info: &Vec<CdnFile>, remote_dir: &str) -> u64 {
let remote_dir = format!("{}/", remote_dir);
@ -197,6 +203,8 @@ async fn update_dir(
dir: &Path,
hashes: &mut HashMap<String, String>,
pb: &ProgressBar,
skip_iw4x_sp: bool,
master_url: &String,
) {
misc::pb_style_download(pb, false);
@ -208,6 +216,9 @@ async fn update_dir(
if !file.name.starts_with(&remote_dir_pre) || file.name == "iw4/iw4x.dll" {
continue;
}
if skip_iw4x_sp && file.name == "iw4/iw4x-sp.exe" {
continue;
}
let sha1_remote = file.hash.to_lowercase();
let file_name = &file.name.replace(remote_dir_pre.as_str(), "");
@ -259,10 +270,10 @@ async fn update_dir(
fs::create_dir_all(parent).unwrap();
}
}
http_async::download_file(
http_async::download_file_progress(
&client,
pb,
&format!("{}/{}", MASTER, file.name),
&format!("{}/{}", master_url, file.name),
&file_path,
file.size as u64,
)
@ -273,11 +284,31 @@ async fn update_dir(
misc::pb_style_download(pb, false);
}
async fn update(game: &Game<'_>, dir: &Path, bonus_content: bool, force: bool) {
let cdn_info: Vec<CdnFile> = serde_json::from_str(&http::get_body_string(
format!("{}/files.json", MASTER).as_str(),
))
.unwrap();
async fn update(
game: &Game<'_>,
dir: &Path,
bonus_content: bool,
force: bool,
skip_iw4x_sp: Option<bool>,
master_url: &String,
ignore_required_files: Option<bool>,
) {
let skip_iw4x_sp = skip_iw4x_sp.unwrap_or(false);
let ignore_required_files = ignore_required_files.unwrap_or(false);
let res = http_async::get_body_string(format!("{}/files.json", master_url).as_str())
.await
.unwrap();
let cdn_info: Vec<CdnFile> = serde_json::from_str(&res).unwrap();
if !ignore_required_files && !game.required_files_exist(dir) {
println!(
"{}\nVerify game file integrity on Steam or reinstall the game.",
"Critical game files missing.".bright_red()
);
std::io::stdin().read_line(&mut String::new()).unwrap();
std::process::exit(0);
}
let mut hashes = HashMap::new();
let hash_file = dir.join(".sha-sums");
@ -292,20 +323,126 @@ async fn update(game: &Game<'_>, dir: &Path, bonus_content: bool, force: bool) {
}
if game.engine == "iw4" {
iw4x::update(dir);
iw4x::update(dir).await;
let iw4x_dirs = vec!["iw4x", "zone/patch"];
for d in &iw4x_dirs {
if let Ok(dir_iter) = dir.join(d).read_dir() {
'outer: for file in dir_iter.filter_map(|entry| entry.ok()) {
let file_path = file.path();
if file_path.is_dir() {
continue;
}
let file_path_rel = match file_path.strip_prefix(dir) {
Ok(rel) => rel.to_path_buf(),
Err(_) => continue,
};
if iw4x_dirs
.iter()
.any(|prefix| file_path_rel.starts_with(Path::new(prefix)))
{
if !cdn_info
.iter()
.any(|cdn_file| cdn_file.name.starts_with("iw4"))
{
continue;
}
let should_continue = cdn_info.iter().any(|cdn_file| {
let path_rem = Path::new(&cdn_file.name)
.strip_prefix(Path::new("iw4"))
.unwrap_or_else(|_| Path::new(&cdn_file.name));
path_rem == file_path_rel
});
if should_continue {
continue 'outer;
}
println!(
"[{}] {}",
"Removed".bright_red(),
misc::cute_path(&file_path)
);
if fs::remove_file(&file_path).is_err() {
println!(
"[{}] Couldn't delete {}",
"Error".bright_red(),
misc::cute_path(&file_path)
);
}
}
}
}
}
}
let pb = ProgressBar::new(0);
update_dir(&cdn_info, game.engine, dir, &mut hashes, &pb).await;
update_dir(
&cdn_info,
game.engine,
dir,
&mut hashes,
&pb,
skip_iw4x_sp,
master_url,
)
.await;
if bonus_content && !game.bonus.is_empty() {
for bonus in game.bonus.iter() {
update_dir(&cdn_info, bonus, dir, &mut hashes, &pb).await;
update_dir(
&cdn_info,
bonus,
dir,
&mut hashes,
&pb,
skip_iw4x_sp,
master_url,
)
.await;
}
}
pb.finish();
for f in game.delete.iter() {
let file_path = dir.join(f);
if file_path.is_file() {
if fs::remove_file(&file_path).is_err() {
println!(
"[{}] Couldn't delete {}",
"Error".bright_red(),
misc::cute_path(&file_path)
);
} else {
println!(
"[{}] {}",
"Removed".bright_red(),
misc::cute_path(&file_path)
);
}
} else if file_path.is_dir() {
if fs::remove_dir_all(&file_path).is_err() {
println!(
"[{}] Couldn't delete {}",
"Error".bright_red(),
misc::cute_path(&file_path)
);
} else {
println!(
"[{}] {}",
"Removed".bright_red(),
misc::cute_path(&file_path)
);
}
}
}
let mut hash_file_content = String::new();
for (file, hash) in hashes.iter() {
hash_file_content.push_str(&format!("{} {}\n", hash, file));
@ -387,6 +524,7 @@ async fn main() {
println!(" --force/-f: Force file hash recheck");
println!(" --pass <args>: Pass arguments to the game");
println!(" --skip-launcher-update: Skip launcher self-update");
println!(" --ignore-required-files: Skip required files check");
println!(
"\nExample:\n alterware-launcher.exe iw4x --bonus --pass \"-console -nointro\""
);
@ -426,8 +564,14 @@ async fn main() {
let mut cfg = config::load(install_path.join("alterware-launcher.json"));
let master_url = if cfg.use_https {
format!("https://{}", MASTER)
} else {
format!("http://{}", MASTER)
};
if !arg_bool(&args, "--skip-launcher-update") && !cfg.skip_self_update {
self_update::run(cfg.update_only);
self_update::run(cfg.update_only).await;
} else {
arg_remove(&mut args, "--skip-launcher-update");
}
@ -450,6 +594,11 @@ async fn main() {
arg_remove(&mut args, "-f");
}
let ignore_required_files = arg_bool(&args, "--ignore-required-files");
if ignore_required_files {
arg_remove(&mut args, "--ignore-required-files");
}
if let Some(pass) = arg_value(&args, "--pass") {
cfg.args = pass;
arg_remove_value(&mut args, "--pass");
@ -457,8 +606,15 @@ async fn main() {
cfg.args = String::default();
}
let games_json = http::get_body_string(format!("{}/games.json", MASTER).as_str());
let games: Vec<Game> = serde_json::from_str(&games_json).unwrap();
let games_json = http_async::get_body_string(format!("{}/games.json", master_url).as_str())
.await
.unwrap();
let games: Vec<Game> = serde_json::from_str(&games_json).unwrap_or_else(|error| {
println!("Error parsing games.json: {:#?}", error);
fs::write("alterware-launcher-error.txt", &games_json).unwrap();
misc::stdin();
std::process::exit(1);
});
let mut game: String = String::new();
if args.len() > 1 {
@ -495,6 +651,23 @@ async fn main() {
for g in games.iter() {
for c in g.client.iter() {
if c == &game {
if cfg.engine.is_empty() {
cfg.engine = String::from(g.engine);
config::save_value_s(
install_path.join("alterware-launcher.json"),
"engine",
cfg.engine.clone(),
);
if cfg.engine == "iw4" && cfg.args.is_empty() {
cfg.args = String::from("-stdout");
config::save_value_s(
install_path.join("alterware-launcher.json"),
"args",
cfg.args.clone(),
);
}
}
if cfg.ask_bonus_content && !g.bonus.is_empty() {
println!("Download bonus content? (Y/n)");
let input = misc::stdin().to_ascii_lowercase();
@ -516,6 +689,9 @@ async fn main() {
install_path.as_path(),
cfg.download_bonus_content,
cfg.force_update,
Some(&game != "iw4x-sp"),
&master_url,
Some(ignore_required_files),
)
.await;
if !cfg.update_only {
@ -527,10 +703,7 @@ async fn main() {
}
#[cfg(windows)]
windows_launcher_install(&games).await;
#[cfg(not(windows))]
manual_install(&games).await;
windows_launcher_install(&games, &master_url).await;
println!("{}", "Game not found!".bright_red());
println!("Place the launcher in the game folder, if that doesn't work specify the client on the command line (ex. alterware-launcher.exe iw4-sp)");

@ -2,26 +2,24 @@ use crate::github;
use crate::global::*;
use semver::Version;
#[cfg(not(windows))]
use std::{thread, time};
pub fn self_update_available() -> bool {
pub async fn self_update_available() -> bool {
let current_version: Version = Version::parse(env!("CARGO_PKG_VERSION")).unwrap();
let latest_version = github::latest_version(GH_OWNER, GH_REPO);
let latest_version = github::latest_version(GH_OWNER, GH_REPO).await;
current_version < latest_version
}
#[cfg(not(windows))]
pub fn run(_update_only: bool) {
if self_update_available() {
pub async fn run(_update_only: bool) {
if self_update_available().await {
println!("A new version of the AlterWare launcher is available.");
println!(
"Download it at {}",
github::latest_release_url(GH_OWNER, GH_REPO)
);
println!("Launching in 10 seconds..");
thread::sleep(time::Duration::from_secs(10));
tokio::time::sleep(tokio::time::Duration::from_secs(10)).await;
}
}
@ -39,10 +37,10 @@ pub fn restart() -> std::io::Error {
}
#[cfg(windows)]
pub fn run(update_only: bool) {
pub async fn run(update_only: bool) {
use std::{fs, path::PathBuf};
use crate::http;
use crate::http_async;
use crate::misc;
let working_dir = std::env::current_dir().unwrap();
@ -62,7 +60,7 @@ pub fn run(update_only: bool) {
}
}
if self_update_available() {
if self_update_available().await {
println!("Performing launcher self-update.");
println!(
"If you run into any issues, please download the latest version at {}",
@ -82,14 +80,16 @@ pub fn run(update_only: bool) {
"alterware-launcher.exe"
};
http::download_file(
http_async::download_file(
&format!(
"{}/download/{}",
github::latest_release_url(GH_OWNER, GH_REPO),
launcher_name
),
&file_path,
);
)
.await
.unwrap();
if !file_path.exists() {
println!("Failed to download launcher update.");

@ -1,3 +1,5 @@
use std::path::Path;
#[derive(serde::Deserialize, serde::Serialize, Clone)]
pub struct CdnFile {
pub name: String,
@ -12,6 +14,21 @@ pub struct Game<'a> {
pub references: Vec<&'a str>,
pub app_id: u32,
pub bonus: Vec<&'a str>,
pub delete: Vec<&'a str>,
pub required: Vec<&'a str>,
}
impl<'a> Game<'a> {
pub fn required_files_exist(&self, dir: &Path) -> bool {
for required_file in &self.required {
let file_path = dir.join(required_file);
if !file_path.exists() {
println!("Required file {} does not exist", file_path.display());
return false;
}
}
true
}
}
#[derive(serde::Deserialize, serde::Serialize)]
@ -22,6 +39,10 @@ pub struct Config {
pub ask_bonus_content: bool,
pub force_update: bool,
pub args: String,
#[serde(default)]
pub engine: String,
#[serde(default)]
pub use_https: bool,
}
impl Default for Config {
@ -33,6 +54,8 @@ impl Default for Config {
ask_bonus_content: true,
force_update: false,
args: String::default(),
engine: String::default(),
use_https: true,
}
}
}