////////////////////////////////////////////////////////////////////////
// WindowsTAP API
////////////////////////////////////////////////////////////////////////

var SHELL = require("lib/shell");
var SYS = require("lib/system");
var FILE = require("lib/file");

exports.VERSIONINFO = "WindowsTAP Lib (wintap.js) version 0.1";
exports.global = global;
exports.require = global.require;

exports.infPath = SYS.getEnvString("PROGRAMFILES") + "/TAP-Windows/driver/OemVista.inf";
exports.binPath = SYS.getEnvString("PROGRAMFILES") + "/TAP-Windows/bin/tapinstall.exe";

exports.before = function() {
    if(!FILE.fileExists(exports.binPath)) {
        console.log("WindowsTAP dose not installed. Trying to install...");
        return SHELL.exec(["bin/tap-windows-9.24.2-I601-Win7.exe"]);
    } else {
        return true;
    }
};

/**
 * @param {string} id
 */
exports.install = function(id) {
    exports.before();
    return SHELL.exec([exports.binPath, "install", exports.infPath, id]);
};

/**
 * @param {string} id
 */
exports.update = function(id) {
    exports.before();
    return SHELL.exec([exports.binPath, "update", exports.infPath, id]);
};

/**
 * @param {string} id
 */
exports.query = function(id) {
    exports.before();
    return SHELL.exec([exports.binPath, "hwids", id]);
};

/**
 * @param {string} id
 */
exports.remove = function(id) {
    exports.before();
    return SHELL.exec([exports.binPath, "remove", id]);
};