From 7b3ee49b6aa5bcff2b46987ebc8d9cd46b9e5ac1 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Tue, 20 Oct 2020 23:37:13 +0200 Subject: improve codebase quality - improve unreachable macro to print a message with a minor traceback then exit(0) instead of assert hackery - add specific wine and dxvk directory methods - rename dxvk install to download - remove sanity asserts from lutris, caught by unreachable - improve comments - rename info to env - only use a single buffer for information fetching - fix formatting on code I had help on - purge unused code - if downloadToRam returns null pointer report that the archive went missing not that its invalid - rename undescriptive "datadir" to be more specific - remove unused code from when we stored the archive on disk --- src/dxvk.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) (limited to 'src/dxvk.c') diff --git a/src/dxvk.c b/src/dxvk.c index f219455..f8d4cc3 100644 --- a/src/dxvk.c +++ b/src/dxvk.c @@ -12,7 +12,7 @@ #include "config.h" const static struct Command dxvk_commands[] = { - { .name = "install", .func = dxvk_install, .description = "download and install a dxvk version" }, + { .name = "download", .func = dxvk_download, .description = "download and install a dxvk version" }, { .name = "list", .func = dxvk_list, .description = "list available dxvk versions" }, }; @@ -30,7 +30,7 @@ int dxvk(int argc, char** argv) } -int dxvk_install(int argc, char** argv) +int dxvk_download(int argc, char** argv) { if (argc == 2) { @@ -56,24 +56,27 @@ int dxvk_install(int argc, char** argv) json_object_object_get_ex(version, "browser_download_url", &assets); char* name = basename((char*)json_object_get_string(assets)); - struct MemoryStruct* tar; + struct MemoryStruct* archive; - char datadir[PATH_MAX]; - getDataDir(datadir, sizeof(datadir)); - makeDir(datadir); + char winedir[PATH_MAX]; + getDXVKDir(winedir, sizeof(winedir)); + makeDir(winedir); - printf("Downloading %s", json_object_get_string(assets)); - //downloadFile(json_object_get_string(assets), name); - tar = downloadToRam(json_object_get_string(assets)); - - printf("Extracting %s\n", name); - - extract(tar, datadir); - - printf("Done\n"); - - free(tar->memory); - free(tar); + printf("Downloading %s\n", name); + + archive = downloadToRam(json_object_get_string(assets)); + if (archive) + { + printf("Extracting %s\n", name); + extract(archive, winedir); + } + else + { + puts("Something went wrong. The archive went missing"); + } + + free(archive->memory); + free(archive); } json_object_put(runner); -- cgit v1.2.3