fix minor syntax bugs

squash
This commit is contained in:
atagen 2024-12-05 13:26:51 +11:00
parent f08580885f
commit 48f1fa975f

View File

@ -44,7 +44,7 @@ let cook () =
let poke () =
print_string header;
meat_print "PREPARING SUSPICIOUS MEATS..";
do_cmd "nh os build --show-trace";
do_cmd "nh os build -- --show-trace";
print_string footer
let gut () =
@ -64,16 +64,15 @@ let look () =
(* let all_flag () = Array.mem "-a" argv || Array.mem "--all" argv
let sub_flag () = Array.mem "-s" argv || Array.mem "--subflake" argv *)
let all_flag () = if Array.length argv >= 3 then match Array.get argv 2 with
| "-a" | "--all" -> true
| _ -> false
else
false
let sub_flag () = if Array.length argv >= 3 then match Array.get argv 2 with
| "-s" | "--sub" -> true
| _ -> false
else
false
let all_flag () =
if Array.length argv >= 3 then
match Array.get argv 2 with "-a" | "--all" -> true | _ -> false
else false
let sub_flag () =
if Array.length argv >= 3 then
match Array.get argv 2 with "-s" | "--sub" -> true | _ -> false
else false
let derelativise base = List.map (fun a -> base ^ "/" ^ a)
@ -84,15 +83,16 @@ let filter_dirs fullpath dirs =
let readdir d = try Sys.readdir d with Sys_error _ -> [||]
let walk entry =
let open List in
let rec loop dir : string list =
let contents = readdir dir |> Array.to_list in
let is_flake = List.mem "flake.nix" contents in
let is_flake = mem "flake.nix" contents in
if dir = entry then
let subdirs = contents |> filter_dirs dir in
List.flatten (List.map loop subdirs)
flatten (map loop subdirs)
else if is_flake then
let subdirs = contents |> filter_dirs dir in
let children = List.flatten (List.map loop subdirs) in
let children = flatten (map loop subdirs) in
[ dir ] @ children
else []
in
@ -125,15 +125,15 @@ let fresh () =
(match (sub_flag (), all_flag ()) with
| false, false ->
(* no flags, plain flake inputs *)
(if argv_len > 3 then
let flakes = Array.sub argv 2 (argv_len - 2) in
if argv_len >= 3 then
let open Array in
let flakes = sub argv 2 (argv_len - 2) in
flakes
|> Array.iter (fun f ->
meat_print ("PROCESSING FRESH MEAT " ^ all_caps f ^ "..");
do_cmd ~args:false
("nix flake update " ^ all_low f ^ " --flake $NH_FLAKE"));
else
do_cmd ("nix flake update --flake $NH_FLAKE"))
|> iter (fun f ->
if all_low f = "meat" then meat_print "PROCESSING REAL MEAT.."
else meat_print ("PROCESSING FRESH MEAT " ^ all_caps f ^ "..");
do_cmd ~args:false ("nix flake update " ^ f ^ " --flake " ^ root))
else do_cmd ("nix flake update --flake " ^ root)
| _, true ->
(* all flag, update all subflakes and main flake inputs *)
walk base_dir |> List.sort compdepth |> List.rev |> submeats;
@ -143,17 +143,18 @@ let fresh () =
| true, _ when argv_len >= 4 ->
(* sub flag, update inputs as subflakes *)
let subflakes =
(match argv_len with
match argv_len with
| 4 -> [ argv.(3) ]
| _ -> Array.sub argv 4 (argv_len - 4) |> Array.to_list)
| _ -> Array.sub argv 4 (argv_len - 4) |> Array.to_list
in
let open List in
let sf_full = subflakes |> derelativise base_dir in
sf_full |> List.map walk |> List.flatten |> List.sort compdepth
|> List.rev |> List.append sf_full |> submeats;
sf_full |> map walk |> flatten |> sort compdepth |> rev |> append sf_full
|> submeats;
print_string footer;
meat_print "PROCESSING FRESH MEATS..";
subflakes
|> List.iter (fun f ->
|> iter (fun f ->
do_cmd ~args:false
("nix flake update " ^ all_low f ^ " --flake $NH_FLAKE"))
| _ -> print_string help);