You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
893 B
37 lines
893 B
open Nsw; |
|
|
|
let colorizeVersions = (~current, ~versions) => { |
|
let strings = |
|
versions |
|
|> List.map(version => { |
|
open Versions.Local; |
|
let str = "- " ++ version.name; |
|
|
|
let color = |
|
current |
|
|> Opt.bind(current => |
|
current.name == version.name ? Some(Pastel.Green) : None |
|
); |
|
|
|
<Pastel ?color> str </Pastel>; |
|
}); |
|
|
|
<Pastel> |
|
<Pastel color=Pastel.Cyan> "## List of installed versions:\n" </Pastel> |
|
<Pastel> ...strings </Pastel> |
|
</Pastel>; |
|
}; |
|
|
|
let getVersionsString = () => |
|
Result.( |
|
{ |
|
let%bind versions = |
|
Versions.getInstalledVersions() |> Result.map(Array.to_list); |
|
|
|
let current = Versions.getCurrentVersion(); |
|
|
|
colorizeVersions(~current, ~versions) |> Result.return; |
|
} |
|
); |
|
|
|
let run = () => getVersionsString() |> Result.map(Console.log) |> Lwt.return;
|
|
|