Compare commits

...

2 Commits

Author SHA1 Message Date
Alexander Popov 095ec61214
changed argv order 2023-07-31 23:17:53 +03:00
Alexander Popov 7812b19878
format code by clang-format 2023-07-31 23:12:24 +03:00
6 changed files with 140 additions and 123 deletions

View File

@ -2,7 +2,7 @@ root = true
[*] [*]
indent_style = space indent_style = space
indent_size = 4 indent_size = 2
end_of_line = lf end_of_line = lf
charset = utf-8 charset = utf-8
trim_trailing_whitespace = true trim_trailing_whitespace = true
@ -10,8 +10,10 @@ insert_final_newline = true
[{*.c,*.h}] [{*.c,*.h}]
indent_style = space indent_style = space
indent_size = 4
[Makefile] [Makefile]
indent_style = tab indent_style = tab
indent_size = 4 indent_size = 4
[.gitmodules]
indent_style = tab

View File

@ -8,6 +8,10 @@
> This project use Semantic Versioning 2.0.0 https://semver.org/ > This project use Semantic Versioning 2.0.0 https://semver.org/
## 31/07/2023 - (1.0.3)
- ♻️ - Format code via `clang-format --style=LLVM`
- ♻️ - Changed arguments order
## 31/07/2023 - (1.0.2) ## 31/07/2023 - (1.0.2)
- ♻️ - Update software executable name - ♻️ - Update software executable name
- ♻️ - Update Makefile - ♻️ - Update Makefile

View File

@ -13,12 +13,12 @@ Utility for parse Minecraft JE game version file (`version.json`).
Minecraft Libraries List Generator Minecraft Libraries List Generator
Usage: Usage:
mc-libs-string <version.json> <system> mc-libs-string <system> <version.json>
<system> - w|l|x (windows or linux or osx) <system> - w|l|x (windows or linux or osx)
Other: Other:
mc-libs-string <version.json> i - to get version info mc-libs-string i <version.json> - to get version info
``` ```
Utility has two required arguments, Utility has two required arguments,

View File

@ -13,12 +13,12 @@
Minecraft Libraries List Generator Minecraft Libraries List Generator
Usage: Usage:
mc-libs-string <version.json> <system> mc-libs-string <system> <version.json>
<system> - w|l|x (windows or linux or osx) <system> - w|l|x (windows or linux or osx)
Other: Other:
mc-libs-string <version.json> i - to get version info mc-libs-string i <version.json> - to get version info
``` ```
Программа имеет два обязательных аргумента, Программа имеет два обязательных аргумента,

10
format-code Executable file
View File

@ -0,0 +1,10 @@
#!/bin/sh
files=(
"src/main.c"
)
for file in "${files[@]}"
do
clang-format -i --style=LLVM --sort-includes=false $file
done

View File

@ -8,15 +8,14 @@
#include <string.h> #include <string.h>
#include <cjson/cJSON.h> #include <cjson/cJSON.h>
#define VERSION "1.0.2" // software version #define VERSION "1.1.0" // software version
void usage(); void usage();
void info(cJSON *json); void info(cJSON *json);
void generate_library_list(cJSON * input_json, cJSON * output_json, char output_system); void generate_library_list(cJSON *input_json, cJSON *output_json,
char output_system);
int int main(int argc, char const *argv[]) {
main(int argc, char const * argv[])
{
if (argc != 3) { if (argc != 3) {
usage(); usage();
} else { } else {
@ -24,7 +23,7 @@ main(int argc, char const * argv[])
char str[900000]; char str[900000];
char buffer[100]; char buffer[100];
fp = fopen(argv[1], "r"); fp = fopen(argv[2], "r");
while (fgets(buffer, sizeof(buffer), fp)) { while (fgets(buffer, sizeof(buffer), fp)) {
strcat(str, buffer); strcat(str, buffer);
} }
@ -39,7 +38,7 @@ main(int argc, char const * argv[])
generate_library_list(json, launcher_libraries, argv[2][0]); generate_library_list(json, launcher_libraries, argv[2][0]);
int libraries_array_size = cJSON_GetArraySize(libraries); int libraries_array_size = cJSON_GetArraySize(libraries);
switch (argv[2][0]) { switch (argv[1][0]) {
default: default:
usage(); usage();
break; break;
@ -67,25 +66,23 @@ main(int argc, char const * argv[])
return 0; return 0;
} }
void void usage() {
usage() printf("%s\n%s: %s\n\n", "Minecraft Libraries List Generator", "Version",
{ VERSION);
printf("%s\n%s: %s\n\n", "Minecraft Libraries List Generator",
"Version", VERSION);
printf("%s\n", "Usage:"); printf("%s\n", "Usage:");
printf(" %s\n\n", "mc-libs-string <version.json> <system>"); printf(" %s\n\n", "mc-libs-string <system> <version.json>");
printf(" %s\n\n", "<system> - w|l|x (windows or linux or osx)"); printf(" %s\n\n", "<system> - w|l|x (windows or linux or osx)");
printf("%s\n", "Other:"); printf("%s\n", "Other:");
printf(" %s\n", "mc-libs-string <version.json> i - to get version info"); printf(" %s\n", "mc-libs-string i <version.json> - to get version info");
} }
void void info(cJSON *json) {
info(cJSON * json) char *minecraft_version =
{ cJSON_GetStringValue(cJSON_GetObjectItem(json, "id"));
char *minecraft_version = cJSON_GetStringValue(cJSON_GetObjectItem(json, "id"));
printf("Minecraft Version: %s\n", minecraft_version); printf("Minecraft Version: %s\n", minecraft_version);
char *assets_version = cJSON_GetStringValue(cJSON_GetObjectItem(json, "assets")); char *assets_version =
cJSON_GetStringValue(cJSON_GetObjectItem(json, "assets"));
printf("Minecraft Assets Version: %s\n", assets_version); printf("Minecraft Assets Version: %s\n", assets_version);
cJSON *libraries = cJSON_GetObjectItem(json, "libraries"); cJSON *libraries = cJSON_GetObjectItem(json, "libraries");
@ -93,9 +90,8 @@ info(cJSON * json)
printf("Minecraft libraries count: %d\n", libraries_array_size); printf("Minecraft libraries count: %d\n", libraries_array_size);
} }
void void generate_library_list(cJSON *input_json, cJSON *output_json,
generate_library_list(cJSON * input_json, cJSON * output_json, char output_system) char output_system) {
{
cJSON *input_libraries = cJSON_GetObjectItem(input_json, "libraries"); cJSON *input_libraries = cJSON_GetObjectItem(input_json, "libraries");
cJSON *output_libraries = cJSON_GetObjectItem(output_json, "libraries"); cJSON *output_libraries = cJSON_GetObjectItem(output_json, "libraries");
int libraries_array_size = cJSON_GetArraySize(input_libraries); int libraries_array_size = cJSON_GetArraySize(input_libraries);
@ -124,17 +120,22 @@ generate_library_list(cJSON * input_json, cJSON * output_json, char output_syste
cJSON *rules = cJSON_GetObjectItem(library, "rules"); cJSON *rules = cJSON_GetObjectItem(library, "rules");
cJSON *rules_item = cJSON_GetArrayItem(rules, 0); cJSON *rules_item = cJSON_GetArrayItem(rules, 0);
cJSON *os_type = cJSON_GetObjectItem(rules_item, "os"); cJSON *os_type = cJSON_GetObjectItem(rules_item, "os");
char *os_name = cJSON_GetStringValue(cJSON_GetObjectItem(os_type, "name")); char *os_name =
cJSON_GetStringValue(cJSON_GetObjectItem(os_type, "name"));
if (os_name != 0) { if (os_name != 0) {
char *library_path = cJSON_GetStringValue(cJSON_GetObjectItem(artifact, "path")); char *library_path =
cJSON_GetStringValue(cJSON_GetObjectItem(artifact, "path"));
if (strcmp(output_system_name, os_name) == 0) { if (strcmp(output_system_name, os_name) == 0) {
cJSON_AddItemToArray(output_libraries, cJSON_CreateString(library_path)); cJSON_AddItemToArray(output_libraries,
cJSON_CreateString(library_path));
} }
} else { } else {
char *library_path = cJSON_GetStringValue(cJSON_GetObjectItem(artifact, "path")); char *library_path =
cJSON_AddItemToArray(output_libraries, cJSON_CreateString(library_path)); cJSON_GetStringValue(cJSON_GetObjectItem(artifact, "path"));
cJSON_AddItemToArray(output_libraries,
cJSON_CreateString(library_path));
} }
} }
} }