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.

51 lines
1.3 KiB

open Fnm;
6 years ago
let run = (~version as maybeVersionName) => {
6 years ago
Console.log("Looking for some node versions upstream...");
let%lwt versions = Versions.getRemoteVersions()
and currentVersion = Versions.getCurrentVersion();
6 years ago
let versions =
switch (maybeVersionName) {
| None => versions
| Some(versionName) =>
let formattedVersionName = Versions.format(versionName);
versions
|> Versions.(
List.filter(v =>
isVersionFitsPrefix(formattedVersionName, Remote.(v.name))
|| v.name == formattedVersionName
)
);
};
6 years ago
switch (versions) {
| [] =>
Console.log(
<Pastel color=Pastel.Red>
"No versions found that match your criterias."
</Pastel>,
);
Lwt.return_error(1);
6 years ago
| _ =>
versions
|> List.iter(version => {
open Versions.Remote;
let str = "* " ++ version.name;
let color =
switch (currentVersion, version.installed) {
| (Some({name: currentVersionName, _}), _)
when currentVersionName == version.name =>
Some(Pastel.Cyan)
| (_, true) => Some(Pastel.Green)
| (_, false) => None
};
();
Console.log(<Pastel ?color> str </Pastel>);
});
Lwt.return_ok();
};
6 years ago
};