| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var childProcess = require("child_process");
- /**
- * open a file or uri using the default application for the file type.
- *
- * @return {ChildProcess} - the child process object.
- * @param {string} target - the file/uri to open.
- * @param {string} appName - (optional) the application to be used to open the
- * file (for example, "chrome", "firefox")
- * @param {function(Error)} callback - called with null on success, or
- * an error object that contains a property 'code' with the exit
- * code of the process.
- */
- function default_1(target, appName, callback) {
- var opener;
- if (typeof appName === 'function') {
- callback = appName;
- appName = null;
- }
- switch (process.platform) {
- case 'darwin':
- if (typeof appName === 'string') {
- opener = 'open -a "' + escape(appName) + '"';
- }
- else {
- opener = 'open';
- }
- break;
- case 'win32':
- // if the first parameter to start is quoted, it uses that as the title
- // so we pass a blank title so we can quote the file we are opening
- if (typeof appName === 'string') {
- opener = 'start "" "' + escape(appName) + '"';
- }
- else {
- opener = 'start ""';
- }
- break;
- default:
- if (typeof appName === 'string') {
- opener = escape(appName);
- }
- else {
- // use system installed Portlands xdg-open everywhere else
- opener = 'xdg-open';
- }
- break;
- }
- if (process.env.SUDO_USER) {
- opener = 'sudo -u ' + process.env.SUDO_USER + ' ' + opener;
- }
- return childProcess.exec(opener + ' "' + escape(target) + '"', callback);
- }
- exports.default = default_1;
- function escape(s) {
- return s.replace(/"/g, '\\\"');
- }
|