![gal@spitfire.co.il](/assets/img/avatar_default.png)
![GitHub](/assets/img/avatar_default.png)
10 changed files with 188 additions and 60 deletions
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash |
||||
|
||||
eval `fnm env --node-dist-mirror="https://npm.taobao.org/dist"` |
||||
|
||||
fnm install v8.11.3 |
||||
fnm use v8.11.3 |
||||
|
||||
if [ "$(node -v)" != "v8.11.3" ]; then |
||||
echo "Node version is not v8.11.3!" |
||||
exit 1 |
||||
fi |
@ -0,0 +1,65 @@
@@ -0,0 +1,65 @@
|
||||
type variable_doc('t) = { |
||||
name: string, |
||||
doc: string, |
||||
default: string, |
||||
}; |
||||
|
||||
module EnvVar = |
||||
( |
||||
M: { |
||||
type t; |
||||
let name: string; |
||||
let doc: string; |
||||
let default: t; |
||||
let parse: string => t; |
||||
let unparse: t => string; |
||||
}, |
||||
) => { |
||||
include M; |
||||
let getOpt = () => Sys.getenv_opt(name) |> Opt.map(parse); |
||||
let get = () => Opt.(getOpt() or default); |
||||
let docInfo = {name, doc, default: unparse(default)}; |
||||
}; |
||||
|
||||
let ensureTrailingBackslash = str => |
||||
switch (str.[String.length(str) - 1]) { |
||||
| '/' => str |
||||
| _ => str ++ "/" |
||||
}; |
||||
|
||||
module FNM_NODE_DIST_MIRROR = |
||||
EnvVar({ |
||||
type t = string; |
||||
let name = "FNM_NODE_DIST_MIRROR"; |
||||
let doc = "https://nodejs.org/dist/ mirror"; |
||||
let default = "https://nodejs.org/dist/"; |
||||
let parse = ensureTrailingBackslash; |
||||
let unparse = ensureTrailingBackslash; |
||||
}); |
||||
|
||||
module FNM_DIR = |
||||
EnvVar({ |
||||
type t = string; |
||||
let parse = ensureTrailingBackslash; |
||||
let unparse = ensureTrailingBackslash; |
||||
let name = "FNM_DIR"; |
||||
let doc = "The root directory of fnm installations."; |
||||
let default = { |
||||
let home = |
||||
Sys.getenv_opt("HOME") |
||||
|> Opt.orThrow("There isn't $HOME environment variable set."); |
||||
Filename.concat(home, ".fnm"); |
||||
}; |
||||
}); |
||||
|
||||
module FNM_MULTISHELL_PATH = |
||||
EnvVar({ |
||||
type t = string; |
||||
let parse = x => x; |
||||
let unparse = x => x; |
||||
let name = "FNM_MULTISHELL_PATH"; |
||||
let doc = "Where the current node version link is stored"; |
||||
let default = ""; |
||||
}); |
||||
|
||||
let getDocs = () => [FNM_DIR.docInfo, FNM_NODE_DIST_MIRROR.docInfo]; |
Loading…
Reference in new issue