Пример #1
0
env.splitPath = function(pathvalue) {
	if (!pathvalue) return [];
	else {
		var paths = pathvalue.split(path.delimiter);
		return  yuan.array.excludeOn(paths, function(item) {
			return item.match(/\s*/);
		});
	}
};
Пример #2
0
	getPIDs: function(OPT) {
		var PIDs = [];
		var cmdline = yuan.string.format('netstat -ano | findstr :%s', OPT.port);
		try {
			var output = child_process.execSync(cmdline);
			var lines = output.toString().split('\r\n');
			lines.forEach(function(line) {
				if (line == '') return;
				var parts = line.trim().split(/\s+/);
				if (yuan.string.endsWith(parts[1], ':' + OPT.port)) {
					PIDs.push(parts[4]);
				}
			});
		}
		catch (ex) {
			// 如果命令输出为空,execSync 将抛出 checkExecSyncError 错误。
			// 这是 NodeJS 的特点,与操作系统无关。
		}

		return yuan.array.uniq(PIDs);
	},
Пример #3
0
java.init = yuan.fn.once(function() {

	if (!java.isReady()) {

		var envs = {};

		// Apple Mac OS X
		if (core.isOS('mac')) {
			// What to do ? e.g.
			// JAVA_HOME=Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

			var ready = false;

			if (!ready) {	
				var pathname = '/Library/Java/JavaVirtualMachines/';
				if (fs.existsSync(pathname)) {
					var reJDK = /^jdk[\d\._]+\.jdk$/;
					yuan.array.untilOn(fs.readdirSync(pathname), function(name) {
						var homepath = path.join(pathname, name, 'Contents', 'Home');
						if (reJDK.test(name) && fs.existsSync(homepath)) {
							envs.JAVA_HOME = homepath;
							return ready = true;
						}
					});
				}
			}

			if (!ready) {
				var pathname = '/Library/Java/Home';
				if (fs.existsSync(pathname)) {
					envs.JAVA_HOME = pathname;
					ready = true;
				}
			}

			if (!ready) {
				var pathname = '/System/Library/Frameworks/JavaVM.framework/Home';
				if (fs.existsSync(pathname)) {
					evns.JAVA_HOME = pathname;
					ready = true;
				}
			}
		}

		// Microsoft Windows
		else if (core.isOS('windows')) {
			// What to do ? e.g.
			// JAVA_HOME=c:\Program Files (x86)\Java\jre7\

			var env = process.env, ready = false;

			if (!ready) {
				var pathname = core.ifNotExists(
					  env['ProgramFiles(x86)']
					, path.join(env['SystemDrive'], 'Program Files (x86)')
					, path.join(env['SystemDrive'], 'Program Files')
					);
				
				if (pathname) pathname = path.join(pathname, 'Java');
				
				if (pathname && fs.existsSync(pathname)) {
					var items = fs.readdirSync(pathname);
					var reJre = /^jre(\d+)$/;
					for (var i = 0, item; item = items[i]; i++) {
						if (reJre.test(item)) {
							// version = RegExp.$1;
							envs.JAVA_HOME = path.join(pathname, item);
							break;
						}
					}
				}
			}
		}

		yuan.object.extendOwn(process.env, envs);
	}

	return java.isReady();
});