var proc = process.exec(cmd , function( error, stdout){ if (error) { console.error("Error spawning netsh : " + proc.error); self._knownWifis = {}; return; } // Fetching visible ssid var ssids = [], output = stdout.toString(); output.split("\n").forEach(function(line) { var parts = line.trim().split(":"); if (parts[0].indexOf("SSID") === 0 && parts[1].trim().length > 0) ssids.push(parts[1].trim()); }); // New wlan found ssids.forEach(function(ssid) { if (!self._knownWifis[ssid]) { var infos = {ssid:ssid}; self._knownWifis[ssid] = infos ; self.fireEvent(netshd.EVENT_WIFI_FOUND, infos); } }); // wlan to remove var toRemove = difference(Object.keys(self._knownWifis), ssids); toRemove.forEach(function(ssid) { var gone = self._knownWifis[ssid]; delete self._knownWifis[ssid]; self.fireEvent(netshd.EVENT_WIFI_LOST, gone); }); });
/** * @param {String[]} bannersList */ calculate ( bannersList ) { const allList = bannersList; const allVisibleBanners = this.getVisibleBanners(); const allHiddenBanners = difference(allList, allVisibleBanners); const list = bannersList; const visibleBanners = intersection(allVisibleBanners, list); const hiddenBanners = difference(list, visibleBanners); return { hide: hiddenBanners, show: visibleBanners }; }
exports.run = function (grunt, task) { var diff = require("mout/array/difference"), keys = require("mout/object/keys"), map = require("mout/object/map"), blob, value; if(!task.data){ grunt.fail.fatal("Test failed.\nNo test found!'"); return; } var diff_result = diff(["dest", "files"], keys(task.data)); if (!!diff_result.length) { grunt.fail.fatal("Test failed.\nMissing properties: '"+diff_result.join("','")+"'."); return; } value = task.data; if (!!value.data && !!value.data.indexOf && !!value.data.indexOf("file!"===0)) { var file_name = value.data.replace(/^file\!/,""); if (grunt.file.exists(file_name)){ value.data = grunt.file.readJSON(file_name); } else { grunt.fail.fatal("[page.data]: attempt failed to file:"+file_name+" failed!"); } } if(!!value.raw && value.raw.constructor.name === "Object"){ value.raw = map(value.raw,function(value){ if (value.indexOf("file!")===0){ value = value.replace(/^file\!/,""); if (grunt.file.exists(value)){ return grunt.file.read(value); } else { grunt.fail.fatal("[page.raw]: attempt failed to file:"+file_name+" failed!"); } } return value; }); } blob = grunt.config.get("concat"); blob[task.target] = { src : task.data.files, dest : task.data.dest, options : task.data.concat_options }; grunt.config.set("concat",blob); var to_run = ["concat:"+task.target]; if (!!task.data.data){ grunt.config.set("blob-"+task.target,value); to_run.push("render-template:"+task.target); } grunt.task.run(to_run); };
async _check_project(project) { console.log("Checking project %s#%s", project.name, project.id); var pattern = this._lookup_config(project); console.log(pattern); var members = pattern.members; delete pattern.members; if(members) { var current = await client.rq("/projects/{{id}}/members", { id : project.id } ); current = require('mout/array/pluck')( current, 'id'); var target = values(pick(this.users, this.expand_users(members))).filter( v => !!v); var missing = diff(target, current ); await eachLimit(missing, 1, async(user_id) => { await client.post("/projects/{{id}}/members", { id : project.id, user_id, access_level : 30} ); }); process.exit(); } await eachOfSeries(pattern, async(prop_value, prop_name) => { if(project[prop_name] == prop_value) return; console.log(project.name, "Changing", prop_name, "to", prop_value ); if( !(opts['cli://unattended']) && !(await bprompt("Proceed", true))) return; await client.put("/projects/{{id}}", {id : project.id, [prop_name]: prop_value }); }); }
grunt.registerMultiTask('mout', 'Grunt task for creating custom browserify builds of http://moutjs.com.', function () { var options = this.options(defaults); var done = this.async(); var b = browserify({ debug: options.debug, standalone: options.standalone }); var files; function complete(err) { if (err) { grunt.log.error(err); done(false); } else { if (options.spy) { fs.appendFile(options.dest, fs.readFileSync(path.join(process.cwd(), './lib/spy.js'), { encoding: 'utf8' }), function (err) { if (err) { grunt.log.error(err); done(false); } else { grunt.log.ok(); done(); } }); } else { grunt.log.ok(); done(); } } } try { b.on('error', complete); options.dest = this.files.length ? this.files[0].dest : defaults.dest; if (!('modules' in options)) { files = []; } else { files = difference(subModules, options.modules); modules.forEach(function (name) { if (contains(options.modules, name)) { files = reject(files, function (item) { return item.indexOf(name) !== -1; }); } }); } createDestDir(options.dest); b.add(require.resolve('mout')); files.forEach(function (name) { b.ignore(require.resolve(name)); }); grunt.log.write('Writing ' + options.dest + '...'); var writable = fs.createWriteStream(path.join(process.cwd(), options.dest)); var readable = b.bundle(); readable.on('error', complete); writable.on('error', complete); writable.on('close', function () { complete(); }); readable.pipe(writable); } catch (err) { complete(err); } });