How to use which - 10 common examples

To help you get started, we’ve selected a few which examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github facebook / flipper / src / chrome / DevicesButton.tsx View on Github external
launchEmulator = (name: string) => {
    // On Linux, you must run the emulator from the directory it's in because
    // reasons ...
    which('emulator')
      .then(emulatorPath => {
        if (emulatorPath) {
          const child = spawn(emulatorPath, [`@${name}`], {
            detached: true,
            cwd: dirname(emulatorPath),
          });
          child.stderr.on('data', data => {
            console.error(`Android emulator error: ${data}`);
          });
          child.on('error', console.error);
        } else {
          throw new Error('Could not get emulator path');
        }
      })
      .catch(console.error);
    this.props.preferDevice(name);
github facebook / flipper / src / chrome / DevicesButton.tsx View on Github external
launchEmulator = (name: string) => {
    // On Linux, you must run the emulator from the directory it's in because
    // reasons ...
    which('emulator')
      .then(emulatorPath => {
        if (emulatorPath) {
          const child = spawn(emulatorPath, [`@${name}`], {
            detached: true,
            cwd: dirname(emulatorPath),
          });
          child.stderr.on('data', data => {
            console.error(`Android emulator error: ${data}`);
          });
          child.on('error', console.error);
        } else {
          throw new Error('Could not get emulator path');
        }
      })
      .catch(console.error);
    this.props.preferDevice(name);
github instructure / instructure-ui / packages / command-utils / lib / index.js View on Github external
function resolveBin (modName, {executable = modName, cwd = process.cwd()} = {}) {
  let pathFromWhich
  try {
    pathFromWhich = fs.realpathSync(which.sync(executable))
  } catch (_error) {
    // ignore _error
  }
  try {
    const modPkgPath = require.resolve(`${modName}/package.json`)
    const modPkgDir = path.dirname(modPkgPath)
    const { bin } = require(modPkgPath)
    const binPath = typeof bin === 'string' ? bin : bin[executable]
    const fullPathToBin = path.join(modPkgDir, binPath)
    if (fullPathToBin === pathFromWhich) {
      return executable
    }
    return fullPathToBin.replace(cwd, '.')
  } catch (error) {
    if (pathFromWhich) {
      return executable
github orchoban / react.cordova / node_modules / npm / node_modules / npm-lifecycle / index.js View on Github external
function shouldPrependCurrentNodeDirToPATH (opts) {
  const cfgsetting = opts.scriptsPrependNodePath
  if (cfgsetting === false) return false
  if (cfgsetting === true) return true

  var isDifferentNodeInPath

  var foundExecPath
  try {
    foundExecPath = which.sync(path.basename(process.execPath), { pathExt: isWindows ? ';' : ':' })
    // Apply `fs.realpath()` here to avoid false positives when `node` is a symlinked executable.
    isDifferentNodeInPath = fs.realpathSync(process.execPath).toUpperCase() !==
        fs.realpathSync(foundExecPath).toUpperCase()
  } catch (e) {
    isDifferentNodeInPath = true
  }

  if (cfgsetting === 'warn-only') {
    if (isDifferentNodeInPath && !shouldPrependCurrentNodeDirToPATH.hasWarned) {
      if (foundExecPath) {
        opts.log.warn('lifecycle', 'The node binary used for scripts is', foundExecPath, 'but npm is using', process.execPath, 'itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.')
      } else {
        opts.log.warn('lifecycle', 'npm is using', process.execPath, 'but there is no node binary in the current PATH. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.')
      }
      shouldPrependCurrentNodeDirToPATH.hasWarned = true
    }
github Chassis / Desktop / src / lib / configure.js View on Github external
const state = store.getState();

	ansiHTML.setColors({
		'reset': ['fff', 'transparent'],
		'black': 'transparent',
	});

	window.keyHandler = new Keys();
	window.keyHandler.listen( store );

	// Fix the process.env path, which isn't inherited by the shell on macOS.
	fixPath();

	if ( ! state.installer.installed.chassis ) {
		// Search for installed applications.
		which( 'vagrant', err => {
			store.dispatch( actions.install.setStatus( 'vagrant', !err ) );
		});
		which( 'VirtualBox', err => {
			store.dispatch( actions.install.setStatus( 'virtualbox', !err ) );
		});
	} else {
		// Refresh machine state constantly.
		store.dispatch(actions.updateGlobalStatus());
		window.setInterval(() => store.dispatch(actions.updateGlobalStatus()), REFRESH_INTERVAL);

		// Refresh configuration.
		store.dispatch(loadAllConfig());
	}
};
github codejamninja / reactant / packages / platform / src / platformApi.ts View on Github external
path.resolve(
              (await pkgDir(__dirname)) || __dirname,
              'node_modules'
            ),
            path.resolve(this.context.paths.root, 'node_modules')
          ]
        })
      );
      if (!pkgPath) throw new Error(`package '${pkg}' not found`);
      command = path.resolve(
        pkgPath,
        // eslint-disable-next-line import/no-dynamic-require,global-require
        require(path.resolve(pkgPath, 'package.json')).bin[bin]
      );
    } else if (process.platform !== 'win32') {
      command = await which(command);
    }
    return new Promise((resolve, reject) => {
      const ps = crossSpawn(command, args, options);
      processes[ps.pid] = ps;
      let result: string | ChildProcess = ps;
      if (ps.stdout && ps.stderr) {
        result = '';
        ps.stdout.on('data', data => (result += data.toString()));
        ps.stderr.on('data', data => (result += data.toString()));
      }
      ps.on('close', () => resolve(result));
      ps.on('error', (err: Error) => reject(err));
    });
  }
github sematext / spm-agent-docker / lib / linuxMetrics.js View on Github external
/*
 * @copyright Copyright (c) Sematext Group, Inc. - All Rights Reserved
 *
 * @licence SPM for NodeJS is free-to-use, proprietary software.
 * THIS IS PROPRIETARY SOURCE CODE OF Sematext Group, Inc. (Sematext)
 * This source code may not be copied, reverse engineered, or altered for any purpose.
 * This source code is to be used exclusively by users and customers of Sematext.
 * Please see the full license (found in LICENSE in this distribution) for details on its license and the licenses of its dependencies.
 */
var which = require('which')
var vmstatCommand = which.sync('vmstat')
var exec = require('child_process').exec
var diskfree = require('node-df')

function vmstatS (callback) {
  exec(vmstatCommand + ' -s', function (err, stout, sterr) {
    if (err) {
      callback(err)
      return
    }
    try {
      var lines = stout.split('\n')
      lines = lines.map(function (line) { return line.trim()})
      if (lines.length >= 21) {
        var swapMapping = {
          swapUsed: 8,
          swapIn: 20,
github neoclide / coc.nvim / lib / source / service / gocode.js View on Github external
return tslib_1.__awaiter(this, void 0, void 0, function* () {
            let { command } = this.config;
            if (command === 'gocode') {
                try {
                    which.sync('gocode');
                }
                catch (e) {
                    yield util_1.echoWarning(this.nvim, 'Could not find gocode in $PATH');
                    this.disabled = true;
                    return;
                }
            }
        });
    }
github microsoft / vscode-react-native / src / extension / appcenter / lib / codepush-node-sdk / dist / cordova / cordova-utils.js View on Github external
function getCordovaOrPhonegapCLI() {
    var cordovaCLI = 'cordova';
    try {
        which.sync(cordovaCLI);
        return cordovaCLI;
    }
    catch (e) {
        cordovaCLI = 'phonegap';
        which.sync(cordovaCLI);
        return cordovaCLI;
    }
}
exports.getCordovaOrPhonegapCLI = getCordovaOrPhonegapCLI;
github agentk / fontfacegen / lib / commands.js View on Github external
fontforge: {},
      ttf2eot: {}
    };

    if (isLinux) {
        check.ttf2svg = {};
    } else {
        check['batik-ttf2svg'] = {};
    }

    var missing = [];

    for (var cmd in check) {
        if (check.hasOwnProperty(cmd)) {
            try {
                commands[cmd] = which(cmd);
            } catch(e) {
                missing.push(cmd);
            }
        }
    }

    if (missing.length) {
        if (isLinux) {
            var errNPM = [], errAPT = [];
            missing.forEach(function(cmd){
                if (cmd.indexOf("ttf2") != -1) {
                    errNPM.push(cmd);
                } else{
                    errAPT.push(cmd);
                }
            });

which

Like which(1) unix command. Find the first instance of an executable in the PATH.

ISC
Latest version published 2 months ago

Package Health Score

92 / 100
Full package analysis