OCaml: Handle some edge cases; refactor parser, main.ml; add config fetcher

This commit is contained in:
Juno Takano 2025-05-09 11:19:27 -03:00
commit cb56da1462
16 changed files with 229 additions and 105 deletions

View file

@ -1,3 +1,7 @@
open Utilities.Aliases
let su = Process.Su.elevate_wrapped
let merge (schema : Schema.schema) (packages : string list) : Schema.schema =
match packages with
| [] ->
@ -6,17 +10,18 @@ let merge (schema : Schema.schema) (packages : string list) : Schema.schema =
output = { schema.output with main = "No packages provided" };
}
| _ ->
let su_command = schema.input.configuration.main.su_command in
let su_command_line = schema.input.configuration.main.su_command in
let su_command = Process.Su.head_of_su_command su_command_line in
let commands : Process.Command.command list =
[
{
name = su_command;
arguments = [ su_command; "apk"; "-i"; "add" ] @ packages;
arguments = su schema $ [ "apk"; "-i"; "add" ] @ packages;
status = Unevaluated;
};
{
name = su_command;
arguments = [ su_command; "apk"; "-i"; "del" ] @ packages;
arguments = su schema $ [ "apk"; "-i"; "del" ] @ packages;
status = Unevaluated;
};
]