     }
 }
 
-func run(_ parts: [String]) throws {
-    let cmd = parts.joined(separator: " ")
+func run(_ parts: [String], silent: Bool = false) throws {
+    var cmd = parts.joined(separator: " ")
+    if silent {
+        cmd.append("> /dev/null 2>&1")
+    }
     try run(cmd)
 }
 

func build(directory: String) throws {
    let cwd = "cd \(directory) &&"
    let cmd = [cwd, "swift", "build", "-c", "release"]
    try run(cmd)
}

func downloadURL(repository: String, branch: String = "master") -> String {

        fail("Could not remove directory '\(unpackedDir)'")
    }
    
    do { // remove tar.gz archive
        if exists(path: archive) {
            try rm(file: archive)
        }
