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.
|
|
|
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;
|