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.

38 lines
893 B

open Fnm;
6 years ago
6 years ago
let colorizeVersions = (~current, ~versions) => {
6 years ago
let strings =
versions
|> List.map(version => {
6 years ago
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>;
6 years ago
});
6 years ago
<Pastel>
<Pastel color=Pastel.Cyan> "## List of installed versions:\n" </Pastel>
<Pastel> ...strings </Pastel>
</Pastel>;
6 years ago
};
6 years ago
let getVersionsString = () =>
Result.(
{
let%bind versions =
Versions.getInstalledVersions() |> Result.map(Array.to_list);
6 years ago
6 years ago
let current = Versions.getCurrentVersion();
6 years ago
6 years ago
colorizeVersions(~current, ~versions) |> Result.return;
}
6 years ago
);
6 years ago
let run = () => getVersionsString() |> Result.map(Console.log) |> Lwt.return;