{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-server/src/utils.js"],"names":["exec","child_process","config","bashBin","run","cmd","Promise","resolve","maxBuffer","error","stdout","stderr","cleanString","str","replace","log","args","console","respondWithCMD","res","dryrun","setHeader","writeHead","end","process","spawn","on","data","write","undefined","code"],"mappings":";;;;;;AAAQA,U,kBAAAA,I;AACDC,mB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAIC,SAAS;AAClBC,iBAAS;AADS,OAAb;;;;;;;;;;;;;;;;;;AAIA,qBAAeC,GAAf,CAAmBC,GAAnB,EAAwB;AAC7B,eAAQ,IAAIC,OAAJ,CAAaC,OAAD,IAAa;AAC/BP,eAAKK,GAAL,EAAU,EAACG,WAAW,OAAO,IAAnB,EAAV,EAAoC,CAACC,KAAD,EAAQC,MAAR,EAAgBC,MAAhB,KAA2B;AAC7DJ,oBAAQ,EAACG,MAAD,EAASC,MAAT,EAAiBF,KAAjB,EAAR;AACD,WAFD;AAGD,SAJO,CAAR;AAKD;;;;AAEM,eAASG,WAAT,CAAqBC,GAArB,EAA0B;AAC/B,eAAOA,IAAIC,OAAJ,CAAY,yBAAZ,EAAsC,GAAtC,CAAP;AACD;;;;AAGM,eAASC,GAAT,CAAa,GAAGC,IAAhB,EAAsB;AAC3BC,gBAAQF,GAAR,CAAY,GAAGC,IAAf;AACD;;;;AAEM,qBAAeE,cAAf,CAA8Bb,GAA9B,EAAmCc,GAAnC,EAAwCC,MAAxC,EAAgD;AACrD,eAAO,IAAId,OAAJ,CAAaC,WAAW;AAC7B;;AAEAY,cAAIE,SAAJ,CAAc,cAAd,EAA8B,YAA9B;AACAF,cAAIE,SAAJ,CAAc,mBAAd,EAAmC,SAAnC;AACAF,cAAIG,SAAJ,CAAc,GAAd;;AAEA,cAAIF,MAAJ,EAAY;AACV,mBAAOD,IAAII,GAAJ,CAAQ,eAAelB,GAAvB,CAAP;AACD;;AAED,cAAImB,UAAUvB,cAAcwB,KAAd,CAAoBvB,OAAOC,OAA3B,EAAoC,CAAC,IAAD,EAAOE,GAAP,CAApC,CAAd;AACAmB,kBAAQd,MAAR,CAAegB,EAAf,CAAkB,MAAlB,EAA0B,UAAUC,IAAV,EAAgB;AACxC;AACAR,gBAAIS,KAAJ,CAAUD,IAAV,EAAgBE,SAAhB,EAA2B,YAAW;AACpC;AACD,aAFD;AAGD,WALD;;AAOAL,kBAAQb,MAAR,CAAee,EAAf,CAAkB,MAAlB,EAA0B,UAAUC,IAAV,EAAgB;AAC1CZ,gBAAI,aAAaY,IAAjB;AACAR,gBAAIS,KAAJ,CAAUD,IAAV;AACC,WAHD;;AAKAH,kBAAQE,EAAR,CAAW,OAAX,EAAoB,UAAUI,IAAV,EAAgB;AAClCX,gBAAII,GAAJ;AACAhB;AACD,WAHD;AAID,SA5BM,CAAP;AA6BD","file":"utils.js","sourcesContent":["import {exec} from \"child_process\"\nimport child_process from \"child_process\";\n\nexport var config = {\n  bashBin: \"bash\"\n}\n\nexport async function run(cmd) {\n  return  new Promise((resolve) => {\n    exec(cmd, {maxBuffer: 1024 * 2000}, (error, stdout, stderr) => {\n      resolve({stdout, stderr, error});      \n    });\n  })\n}\n\nexport function cleanString(str) {\n  return str.replace(/[^A-Za-z0-9 ,.()\\[\\]#]/g,\"_\")\n}\n\n\nexport function log(...args) {\n  console.log(...args)\n}\n\nexport async function respondWithCMD(cmd, res, dryrun) {\n  return new Promise( resolve => {\n    // log(cmd);\n\n    res.setHeader('Content-Type', 'text/plain');\n    res.setHeader('Transfer-Encoding', 'chunked');\n    res.writeHead(200);\n\n    if (dryrun) {\n      return res.end(\"dry run:\\n\" + cmd);\n    }\n\n    var process = child_process.spawn(config.bashBin, [\"-c\", cmd]);\n    process.stdout.on('data', function (data) {\n      // log('STDOUT: ' + data);\n      res.write(data, undefined, function() {\n        // log(\"FLUSH\");\n      } );\n    });\n\n    process.stderr.on('data', function (data) {\n    log('stderr: ' + data);\n    res.write(data);\n    });\n\n    process.on('close', function (code) {\n      res.end();\n      resolve();\n    });    \n  })\n}\n"]}