Commit graph

41 commits

Author SHA1 Message Date
Vilsol
5d48312060
fix: store target in cache filename (#54) 2023-12-29 21:27:49 +02:00
Vilsol
da61008e32
fix: always close file after hashing (#53) 2023-12-29 17:15:18 +02:00
Rob B
e313efdfec
feat: compatibility info display in View Mod screen. log to ficsit-cli.log by default (#33)
* fix: log by default (ficsit-cli.log in CWD)

* chore: update readme with info on code generation

* chore: regenerate docs for default log file location

* feat: compatibility info state and note display. wip: keybind to switch view modes not working

* fix: move render code out to a function, but it still isn't quite working yet

* feat: display mod reference below mod name

* Fix compat toggle with

* Show scroll up/down on quick help

* chore: fix merge conflict

* chore: run go install mvdan.cc/gofumpt@latest; gofumpt -l -w .

* chore: run gci.exe write --skip-generated -s standard -s default -s 'prefix(github.com/satisfactorymodding/ficsit-cli)' -s blank -s dot .

* chore: update readme linting info and run golangci-lint --version

* fix: log file is defaulted to empty again

* fix(#33): update render to return just string

* fix(#33): renderModInfo returns only string

* fix(#33): reollback func namechange

* refactor(#33): remove redundant viewport refresh

* refactor(#33): update is not required after setting content

* refactor(#33): remove unrequired log

* docs(#33): update documentation to latest generated

* docs(#33): update cache reference to not contain username

* docs(#33): fix local dir references too

* refactor(#33): replace vague variable with more helpful

* Add directions about using dev schema when generate command fails

* Fix issues from earlier merge conflict

---------

Co-authored-by: Jack Stupple <jack.stupple@protonmail.com>
2023-12-28 04:32:56 +02:00
Vilsol
32becde782
chore: lint 2023-12-28 03:26:17 +02:00
Vilsol
e8dbeb7da0
chore: lint 2023-12-28 03:22:55 +02:00
Vilsol
a53290b1cb
fix: fuck vsftpd 2023-12-28 03:19:42 +02:00
Vilsol
87c7327253
chore: maybe? 2023-12-28 02:38:38 +02:00
Vilsol
b2d8e22977
test: add retry to ftp test 2023-12-28 02:28:21 +02:00
Vilsol
2672b17f44
feat: sftp (#51)
* feat: sftp
test: add tests for ftp and sftp

* chore: ci fixes

* chore: potential race fix

* fix: simplify existence checks

* fix: split path differently for ftp

* fix: 🤷

* chore: add debug print

* chore: lint

* chore: idk dude

* chore: ?

* chore: more logs

* chore: wipe mods before tests

* chore: logs

* chore: wat

* chore: wait?

* chore: no errors

* chore: gh actions are 💩

* fix: always sync after copy

* chore: remove some test logs

* chore: remove test progress watcher

* refactor: change progress to writer

* chore: logs

* chore: different logs

* chore: whoops

* chore: moar logs

* chore: even moar logs

* chore: what is life

* chore: why are we here

* chore: we are just bags of water floating through space

* chore: are you real?

* chore: ?

* chore: if you get a single update now I call bs

* chore: ok what if we just do one?

* chore: ok what if we do two?

* chore: this should not work

* chore: wait no, this one

* chore: fml

* chore: remove logs

* chore: what if we just wait a little

* chore: retry

* chore: move error

* chore: verbose log

* chore: remove explicit sleep

* chore: remove debug

* fix: linux pathing on windows

* fix: clean paths properly

* fix: fuck ftp

* fix: send update on vanilla

* feat: parallel ftp

* fix: remove potential credential leak
2023-12-28 02:13:09 +02:00
Vilsol
baacde400e
feat: parallel apply command (#50)
* feat: parallel apply command
fix: show general help for --help flag
fix: don't append channel if it doesn't exist
chore: build against windows and linux

* chore: lint
2023-12-21 00:37:18 +02:00
Vilsol
25f544b8fe
refactor: zerolog -> slog, errors.Wrap -> fmt.Error (#49)
* refactor: zerolog -> slog, errors.Wrap -> fmt.Error

* chore: lint

* fix: correctly handle errors

* fix: use parsed level

* fix: use parsed level, log json to file
2023-12-16 16:19:53 +02:00
Vilsol
4195463c60
feat: threaded download pooling (#48)
* feat: threaded download pooling
refactor: splice out resolver

* chore: remove debug
2023-12-16 13:59:58 +02:00
Vilsol
b6592fe185
feat: parallel apply view (#47)
* feat: parallel apply view

* chore: cleaner readme

* chore: lint

* chore: remove debug logging

* chore: lint
2023-12-14 01:34:01 +02:00
Vilsol
98b7c99e74
fix: various edge cases (#45)
* fix: various edge cases
test: add tea unit test

* chore: lint

* chore: 🤷

* test: fail after 1 minute

* test: print buffer

* test: fuck windows
2023-12-07 23:31:37 +02:00
Vilsol
5f2e60a9e2
feat: multi targets (#44)
* feat: use mod version targets

* chore: lint

* chore: remove unused

* chore: target dev on ci

* fix: rename WindowsNoEditor target to Windows
fix: close file reader

* fix: ensure closure of downloaded mod

* fix: ensure all important events are sent

* fix: lock adding files to cache

---------

Co-authored-by: mircearoata <mircearoatapalade@gmail.com>
2023-12-07 18:57:31 +02:00
mircearoata
6088d1e8eb
feat: parallel downloads (#43)
* feat: parallel downloads

* feat: mod extract progress using file size

* feat: pass mod version in install progress updates

* fix: only close update channels after finished sending

* chore: verbose ci tests

* fix: store mod in cache
chore: add progress logging to tests

* chore: lint

* test: add concurrent download limit

* fix: prevent concurrent map access

* chore: bump pubgrub
fix: fix race conditions

---------

Co-authored-by: Vilsol <me@vil.so>
2023-12-07 01:39:34 +02:00
mircearoata
a192a63c82
feat: add mod updating (#42)
* feat: add mod updating

* fix: refactor for previous changes

* test: add mod update tests

---------

Co-authored-by: Vilsol <me@vil.so>
2023-12-06 21:37:33 +02:00
mircearoata
e4b02a792d
feat: offline mode (#14)
* chore: move mod downloading to cli/cache

* feat: data providers, ficsit and local

* feat: keep cache in memory, load on init

* feat: log invalid cache files instead of returning error

* chore: make linter happy

* feat: fill cached mod Authors field from CreatedBy

* chore: make linter happy again

* feat: add icon and size to cached mods

* feat: cache the cached file hashes

* fix: change to new provider access style

---------

Co-authored-by: Vilsol <me@vil.so>
2023-12-06 06:47:41 +02:00
mircearoata
ea983cf851
feat: vanilla toggle per install (#13)
* feat: vanilla toggle per install

* fix: update set-vanilla cmd description

* fix: use viper for the set-vanilla off flag

* fix: writing lockfile when the directory didn't exist

* fix: check for nil selected install in header vanilla message

---------

Co-authored-by: Vilsol <me@vil.so>
2023-12-06 06:02:06 +02:00
Vilsol
4e1993fe25
fix: update platform version paths (#41) 2023-12-06 05:51:23 +02:00
mircearoata
024b11b1e8
feat: use the pubgrub algorithm for solving versions (#40)
* refactor: separate resolving tests

* feat: use pubgrub to resolve dependencies

* feat: show friendly mod name in error message

* feat: show single version in error message when only one matches

* ci: update go version to match go.mod

* feat: format FactoryGame incompatibility and term

* chore: fetch all necessary data of the version at once

* chore: upgrade pubgrub

* chore: upgrade pubgrub

* ci: update golangci-lint version for go 1.21

* chore: lint

* chore: update go version in readme
2023-12-06 05:01:49 +02:00
mircearoata
7f3e6382c1 fix: deterministic resolving order 2023-06-12 11:47:04 +02:00
Vilsol
815c8a3c57 chore: make tests pass 2022-10-14 20:43:17 +03:00
Vilsol
d0a807b6a4 feat: add mod upload command 2022-10-14 19:11:16 +03:00
Vilsol
5ac338f2b5 fix: check schema in base path 2022-06-23 02:05:35 +03:00
Vilsol
47615c3325 fix: explicitly check schemas 2022-06-23 01:37:36 +03:00
Vilsol
ef7f8cc8e8 feat: add support for ftp 2022-06-23 01:24:35 +03:00
Vilsol
6d5b929ef9 fix: always close update channel and wait for goroutine exit
fix: copy label style to not affect it everywhere
2022-06-18 19:09:09 +03:00
Vilsol
e01db90b0b add cli commands, docs, readme 2022-06-08 23:56:32 +03:00
Vilsol
1daf6e9610 only delete owned mods, mod enable/disable, do not re-extract 2022-06-08 02:36:28 +03:00
Vilsol
ac1dfb6148 path -> filepath 2022-06-05 04:56:46 +03:00
Vilsol
015414c5b0 highlight installed mods, fancy new installation page, more sort options 2022-06-04 21:47:10 +03:00
Vilsol
fb1d33cc17 catch test error, more logging 2022-06-04 01:33:42 +03:00
Vilsol
bdcbb0b677 technically "functional", but you be the judge 2022-06-04 01:17:02 +03:00
Vilsol
3c4837069d do not fail fast, update test message 2022-05-02 23:31:23 +03:00
Vilsol
0647db1620 Resolution, downloads, lockfiles 2022-05-02 23:07:15 +03:00
Vilsol
bcfc88da55 Run tests in CI, split apart workflows 2022-04-14 04:33:24 +03:00
Vilsol
a4f77e407c Dependency resolution, installations 2022-04-14 04:27:39 +03:00
Vilsol
30c8dcf3cd Add profile management 2021-12-04 20:02:05 +02:00
Vilsol
e329e48e9b Tooling, Mod Browser, Cleanup, CI 2021-12-02 06:00:33 +02:00
Vilsol
4fadd21214 Initial commit 2021-11-05 23:42:49 +02:00