Example #1
0
 return new Promise(function (resolve) {
     var messages = [];
     cp.spawn(cmd, args, { cwd: projectDir })
         .then(function (result) {
         // Pylama's exit code is 0 when there are no linting errors.
         logger.log(">>> NO ERRORS <<<");
         logger.log(">>> RAW OUTPUT <<<");
         logger.log(result.stdout);
         logger.log(">>> END <<<");
         return resolve(messages);
     })
         .catch(function (error) {
         // Pylama's exit code is 1 when there are linting errors.
         logger.log(">>> RAW OUTPUT <<<");
         logger.log(error.stdout);
         logger.log(">>> END <<<");
         var parsedLines = _this.parser.parseLines(error.stdout);
         for (var _i = 0, parsedLines_1 = parsedLines; _i < parsedLines_1.length; _i++) {
             var parsedLine = parsedLines_1[_i];
             var message = _this.parser.buildMessage(textEditor, parsedLine, config);
             messages.unshift(message);
         }
         runningFlag = false;
         if (tempFile) {
             tempFile.clean();
         }
         cache.store(messages);
         return resolve(messages);
     });
 });
Example #2
0
 return new Promise(function (resolve) {
     var messages = [];
     cp.spawn(cmd, args, { cwd: projectDir })
         .then(function (result) {
         logger.log(">>> RAW OUTPUT <<<");
         logger.log(result.stdout);
         logger.log(">>> END <<<");
         var parsedLines = _this.parser.parseLines(result.stdout);
         for (var _i = 0, parsedLines_1 = parsedLines; _i < parsedLines_1.length; _i++) {
             var parsedLine = parsedLines_1[_i];
             var message = _this.parser.buildMessage(textEditor, parsedLine, config);
             messages.unshift(message);
         }
         runningFlag = false;
         if (tempFile) {
             tempFile.clean();
         }
         cache.store(messages);
         return resolve(messages);
     })
         .catch(function (error) {
         atom.notifications.addError("Execution finished with error:\n\n" + error);
         logger.log(">>> EXECUTION ERROR <<<");
         logger.log(error);
         logger.log(">>> END <<<");
         runningFlag = false;
         if (tempFile) {
             tempFile.clean();
         }
         return resolve(cache.get());
     });
 });
Example #3
0
    async build(buildInfo, logFile, username, isNpmInstall, isInc, incExc, sync) {
        let self = this;
        let fileU = new fileUtil();
        let buildDir = fileU.getCvsDir(username, buildInfo.pro_id);
        //如果是增量文件,则在tag目录构建
        if (isInc && incExc == 1) {
            buildDir = fileU.getLastTagDir(username, buildInfo.pro_id);
        }
        let packageFileDir = buildDir + '/package.json';
        let task = buildInfo.task;
        console.log('task:', buildInfo);
        let code_lang = buildInfo.code_lang;
        let build_shell = './src/common/service/impl/build_' + code_lang + '.sh';
        console.log(build_shell, buildDir, task, buildInfo.pro_id, isNpmInstall);
        ///执行build_hook before
        buildInfo.shellParams={
          build_shell: build_shell,
          buildDir: buildDir,
          task:task,
          isNpmInstall:isNpmInstall
        }
        let hook= buildInfo.build_hook;
        let hookArray = [];
        if(hook&&hook.length>0){
            let hookStrArray = hook.split(';');
            for(let i=0;i<hookStrArray.length>0;i++ ){
              let hookInstance = think.service(hookStrArray[i]);
              //let hookInstance = new hookService();
              hookArray.push(hookInstance);
            }
        }

        for(let i=0 ;i<hookArray.length;i++){
          hookArray[i].before(buildInfo);
        }
        if (sync) {
            let cmdParam = [buildDir, "'" + task + "'", buildInfo.pro_id, isNpmInstall].join(' ');
            let cmd = build_shell + ' ' + cmdParam;
            //改成同步执行
            let changeLog = await childProcessPro.exec(cmd, {
                maxBuffer: 100 * 1024 * 1024
            });
            let options = {
                encoding: 'utf8',
                mode: 438,
                flag: 'a'
            };
            fs.writeFileSync(logFile, changeLog.stdout, options);
        } else {
            const pro = childProcessPro.spawn('sh', [build_shell, buildDir, task, buildInfo.pro_id, isNpmInstall]);
            let childProcess = pro.child;
            let options = {
                encoding: 'utf8',
                mode: 438,
                flag: 'a'
            };
            childProcess.stdout.on('data', (data) => {
                fs.writeFileSync(logFile, data, options);
            });
            childProcess.stderr.on('data', (data) => {
                fs.writeFileSync(logFile, data, options);
            });
            childProcess.on('close', (code) => {
                fs.writeFileSync(logFile, buildInfo.pro_name + ' build end!!!\n', options);
            });
        }

        buildInfo.buildDir = buildDir;
        for(let i=0 ;i<hookArray.length;i++){
          hookArray[i].after(buildInfo);
        }
        return buildInfo;

    }