| 25 |
25 |
script = "" |
| 26 |
26 |
for r in missing: |
| 27 |
27 |
if r in config.BREW_FORMULAE: |
| 28 |
|
− script += "echo ' brew install %s'; brew install -q %s >/dev/null 2>&1 || echo ' ! échec %s'\n" % (r, config.BREW_FORMULAE[r], r) |
|
28 |
+ fallback = " || npm install -g pm2 >/dev/null 2>&1" if r == "pm2" else "" |
|
29 |
+ script += "echo ' brew install %s'; brew install -q %s >/dev/null 2>&1%s || echo ' ! échec %s'\n" % (r, config.BREW_FORMULAE[r], fallback, r) |
| 29 |
30 |
elif r in config.BREW_CASKS: |
| 30 |
31 |
script += "echo ' brew install --cask ngrok'; brew install -q --cask ngrok >/dev/null 2>&1 || brew install -q ngrok/ngrok/ngrok >/dev/null 2>&1 || echo ' ! échec ngrok'\n" |
| 31 |
32 |
# config ngrok (authtoken) depuis la passerelle |
| 32 |
33 |
if "ngrok" in missing or not have.get("ngrok"): |
| 33 |
34 |
if os.path.exists(config.NGROK_CFG): |
| 34 |
|
− ssh.run(ip, "mkdir -p \"$HOME/Library/Application Support/ngrok\"") |
| 35 |
|
− ssh.scp_to(ip, config.NGROK_CFG, "'/Users/%s/Library/Application Support/ngrok/ngrok.yml'" % config.USER) |
| 36 |
|
− script += "echo ' ngrok.yml copié'\n" |
|
35 |
+ rc0, _, _ = ssh.write_remote_file(ip, "/Users/%s/Library/Application Support/ngrok/ngrok.yml" % config.USER, open(config.NGROK_CFG).read(), mode="600") |
|
36 |
+ script += "echo ' ngrok.yml %s'\n" % ("copié" if rc0 == 0 else "ÉCHEC de copie") |
| 37 |
37 |
# marqueur |
| 38 |
38 |
script += "[ -f ~/.maclustr-node ] || echo %s > ~/.maclustr-node\n" % alias |
| 39 |
39 |
# pm2 startup (launchd) — nécessite sudo |
| 40 |
40 |
|