 
         try [beforeTask, CommandTask(name: verb, commands: commands), afterTask].flatMap { $0 }.forEach(execute)
     }
-
-    // TODO: Consider passing android home into all paths that need it
-    // We could extract this all out to a android command builder
-    func adbToolCommand() throws -> String {
-        return try androidHome()
-            .pathByAdding(component: SDKPaths.platformTools.rawValue)
-            .pathByAdding(component: SDKPaths.adbTool.rawValue)
-    }
 }


    func includeFor(target: String) throws -> String {
        return try androidHome()
            .pathByAdding(component: SDKPaths.platforms.rawValue)
            .pathByAdding(component: target)
            .pathByAdding(component: SDKPaths.platformIncludeName.rawValue)
    }

    func packageToolPath(buildTools: String) -> String {
        return buildTools.pathByAdding(component: SDKPaths.packageTool.rawValue)
    }

    func jackToolCommand(buildTools: String) -> String {
        let jackPath = buildTools.pathByAdding(component: SDKPaths.jackTool.rawValue)
        let command = "java -jar " + jackPath
        return command
    }

    func zipAlignToolCommand(buildTools: String) -> String {
        return buildTools.pathByAdding(component: SDKPaths.zipAlignTool.rawValue)
    }

    // MARK: - Running functions

import Commandant
import Result

fileprivate enum Paths: String {
    case tools = "tools"
    case buildTools = "build-tools"
    case platformTools = "platform-tools"
    case platforms = "platforms"
    case platformIncludeName = "android.jar"
}

fileprivate enum Tools: String {
    case android = "android"
    case emulator = "emulator"
    case package = "aapt"
    case jack = "jack.jar"
    case zipAlign = "zipalign"
    case adb = "adb"
}

protocol AndroidCommand: CommandProtocol {
