function whenDone()

in src/superspawn.js [120:145]


    function whenDone (arg) {
        if (child) {
            child.removeListener('close', whenDone);
            child.removeListener('error', whenDone);
        }
        const code = typeof arg === 'number' ? arg : arg && arg.code;

        events.emit('verbose', `Command finished with error code ${code}: ${cmd} ${args}`);
        if (code === 0) {
            d.resolve(capturedOut.trim());
        } else {
            let errMsg = `${cmd}: Command failed with exit code ${code}`;
            if (capturedErr) {
                errMsg += ` Error output:\n${capturedErr.trim()}`;
            }
            const err = new Error(errMsg);
            if (capturedErr) {
                err.stderr = capturedErr;
            }
            if (capturedOut) {
                err.stdout = capturedOut;
            }
            err.code = code;
            d.reject(err);
        }
    }