From 722706fe41e556530bd9b49c8afa8c7ade577919 Mon Sep 17 00:00:00 2001
From: Aleksey Kladov <aleksey.kladov@gmail.com>
Date: Sun, 16 Sep 2018 02:12:53 +0300
Subject: get rid of commandspeck

---
 crates/tools/src/main.rs | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

(limited to 'crates/tools/src')

diff --git a/crates/tools/src/main.rs b/crates/tools/src/main.rs
index 5bfaf18f1..3f9caa4be 100644
--- a/crates/tools/src/main.rs
+++ b/crates/tools/src/main.rs
@@ -5,8 +5,6 @@ extern crate ron;
 extern crate tera;
 extern crate tools;
 extern crate walkdir;
-#[macro_use]
-extern crate commandspec;
 extern crate heck;
 
 use clap::{App, Arg, SubCommand};
@@ -15,6 +13,7 @@ use std::{
     collections::HashMap,
     fs,
     path::{Path, PathBuf},
+    process::Command,
 };
 use tools::{collect_tests, Test};
 
@@ -191,24 +190,25 @@ fn existing_tests(dir: &Path) -> Result<HashMap<String, (PathBuf, Test)>> {
 }
 
 fn install_code_extension() -> Result<()> {
-    execute!(r"cargo install --path crates/server --force")?;
-    execute!(
-        r"
-cd code
-npm install
-    "
-    )?;
-    execute!(
-        r"
-cd code
-./node_modules/vsce/out/vsce package
-    "
-    )?;
-    execute!(
-        r"
-cd code
-code --install-extension ./rcf-lsp-0.0.1.vsix
-    "
-    )?;
+    run("cargo install --path crates/server --force", ".")?;
+    run(r"npm install", "./code")?;
+    run(r"./node_modules/vsce/out/vsce package", "./code")?;
+    run(r"code --install-extension ./rcf-lsp-0.0.1.vsix", "./code")?;
+    Ok(())
+}
+
+fn run(cmdline: &'static str, dir: &str) -> Result<()> {
+    eprintln!("\nwill run: {}", cmdline);
+    let manifest_dir = env!("CARGO_MANIFEST_DIR");
+    let project_dir = Path::new(manifest_dir).ancestors().nth(2).unwrap().join(dir);
+    let mut args = cmdline.split_whitespace();
+    let exec = args.next().unwrap();
+    let status = Command::new(exec)
+        .args(args)
+        .current_dir(project_dir)
+        .status()?;
+    if !status.success() {
+        bail!("`{}` exited with {}", cmdline, status);
+    }
     Ok(())
 }
-- 
cgit v1.2.3