From c4032f4a0b0ae5d3be6048a9d466fe229fdc026d Mon Sep 17 00:00:00 2001 From: Kevin Schneider <schneider.kev@outlook.de> Date: Fri, 14 Jul 2023 14:11:45 +0200 Subject: [PATCH] lol --- test.fsx | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test.fsx diff --git a/test.fsx b/test.fsx new file mode 100644 index 0000000..8f37bfc --- /dev/null +++ b/test.fsx @@ -0,0 +1,47 @@ +open System +open System.IO +open System.Text.Json + +type ProcessResult = { + ExitCode : int; + StdOut : string; + StdErr : string +} + +let executeProcess (processName: string) (processArgs: string) = + let psi = new Diagnostics.ProcessStartInfo(processName, processArgs) + psi.UseShellExecute <- false + psi.RedirectStandardOutput <- true + psi.RedirectStandardError <- true + psi.CreateNoWindow <- true + let proc = Diagnostics.Process.Start(psi) + let output = new Text.StringBuilder() + let error = new Text.StringBuilder() + proc.OutputDataReceived.Add(fun args -> output.Append(args.Data) |> ignore) + proc.ErrorDataReceived.Add(fun args -> error.Append(args.Data) |> ignore) + proc.BeginErrorReadLine() + proc.BeginOutputReadLine() + proc.WaitForExit() + { ExitCode = proc.ExitCode; StdOut = output.ToString(); StdErr = error.ToString() } + + +let changed_files = File.ReadAllLines("file_changes.txt") |> set + +type ValidationPackageIndex = + { + Name: string + LastUpdated: System.DateTime + } + +Directory.GetFiles("validation_packages", "*.fsx") +|> Array.map (fun package -> + if changed_files.Contains(package) then + { Name = package; LastUpdated = System.DateTime.Now} + else + printfn $"{package} was changed in this commit." + let history = executeProcess "git" $"log -1 --pretty=format:%%ci {package}" + { Name = package; LastUpdated = System.DateTime.ParseExact(history.StdOut.Split(" ").[0], "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)} +) +|> fun packages -> JsonSerializer.Serialize(packages) +|> fun json -> File.WriteAllText("validation_packages.json", json) + -- GitLab