Commit graph

107 commits

Author SHA1 Message Date
Rob B
7cd93926c6
fix: add FactoryGameSteam and FactoryGameEGS rootExecutable and platform (#69)
* fix: add `FactoryGameSteam` rootExecutable and platform

* fix: add `FactoryGameEGS` rootExecutable and platform
2024-09-10 16:26:28 -07:00
Rob B
8acb690014
feat: docs update, darwin dirs (#66)
* chore: update linter and spellchecker for readme

* docs: add basic directions for managing installations

* chore: replace old repo links

* feat: dirs for darwin support

---------

Co-authored-by: Vilsol <me@vil.so>
2024-08-14 03:36:41 +03:00
mircearoata
d744884f25
feat: remove SML references (#64)
* feat: update ficsit-resolver

* feat: remove SML references

* feat: read GameVersion from uplugin

* ci: docker-compose => docker compose
2024-08-14 03:27:07 +03:00
mircearoata
d051b5800a
perf(ftp): reduce number of ftp commands run in install preparation (#63)
* perf(ftp): use MLST or LIST first to determine if path exists over ftp

* perf(ftp): optimistically check directories from target path up when creating directory

* fix(ftp): skip . and .. in ReadDir

* perf(remote): parallelize old mod removal

* perf(remote): parallelize install validation

* perf(remote): remove unnecessary validation in GetGameVersion

* pref(remote): reduce amount of Validate and GetPlatform calls

* chore: remove unnecessary error handling
2024-05-05 23:01:17 +02:00
mircearoata
5e9fe2aebb
fix: load cache integrity as plain map (#60) 2024-02-02 01:34:22 +02:00
Vilsol
c67285a76c
feat: show progress in bytes (#55)
* feat: show progress in bytes

* fix: never progress backwards
2023-12-29 23:18:01 +02:00
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
Rob B
0b2bc27119
Merge pull request #52 from satisfactorymodding/ftp-test-retry
test: switch to builtin ftp server
2023-12-27 18:13:33 -08: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
SurDaft - Jack Stupple
72a6094ad3
#25: Fix long error messages clipping on apply scene (#30) 2023-07-28 14:53:29 +03:00
Rob B
15fd3eb497
fix: stop unrelated mod data appearing in Installed Mods screen (#28)
* chore: readme update to include relevant paths

* chore: clarify log message

* fix: stop loading unrelated mod data in Installed Mods screen when no mods are installed
2023-07-10 06:22:24 +03:00
Rob B
5188ba2169
Merge pull request #29 from surdaft/bugfix/23
#23: Fix missing short help on view mod info scene
2023-07-09 22:13:37 -05:00
Jack Stupple
c977330b86 Fix missing short help on view mod info scene 2023-07-08 22:54:14 +01:00
Rob B
774d0c40ef
Merge pull request #27 from satisfactorymodding/command-help-enter
chore: add 'enter to select' to all scenes
2023-07-07 03:01:01 -05:00
Robb
f15304fc54
chore: add 'enter to select' to all scenes
fixes #20
2023-06-19 22:11:25 -05:00
Rob B
9ceee7e514
Merge pull request #17 from satisfactorymodding/readme-updates
chore: additional developer setup info in the readme
2023-06-18 14:10:27 -04:00
Robb
84c08e2364
chore: additional developer setup info in the readme 2023-06-18 12:25:22 -05:00
Vilsol
daa6fba7e8
Merge pull request #11 from samox73/master
Rework the bubble-tea scene files to provide a more consistent experience
2023-06-18 19:59:44 +03:00
samuel
c57a917003 fix other linting errors 2023-06-18 17:48:53 +02:00
samuel
61167b8a7d fix linting error 2023-06-18 17:41:24 +02:00
Samuel Recker
3e2a61615b split scene pkg into smaller independent sub pkgs 2023-06-15 10:50:10 +02:00
Samuel Recker
ba6413e9c7 set height of main menu help to match other scenes 2023-06-15 10:50:10 +02:00
Samuel Recker
ca84300ef3 fix help in new_installation, follow symlinks 2023-06-15 10:50:10 +02:00
Samuel Recker
29e82341fd remove wrong comment 2023-06-15 10:50:10 +02:00
Samuel Recker
e8361766b3 fix back hint in help views 2023-06-15 10:50:10 +02:00
Samuel Recker
a92ea6df48 add vscode debug stuff, adjust gitignore 2023-06-15 10:50:10 +02:00
Vilsol
23f9884874
Merge pull request #18 from satisfactorymodding/ci-fixes
chore: consistent CI behaviour
2023-06-12 14:08:48 +03:00
mircearoata
9cb6de336f ci: pin golangci-lint version 2023-06-12 12:05:28 +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
824a94b9b7 chore: change aur homepage url 2022-10-14 19:12:34 +03:00