@planjs/webpack-deploy-plugin
Version:
The webpack plugin handles various uploads of front-end files
1 lines • 1.61 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault").default;Object.defineProperty(exports,"__esModule",{value:!0}),exports.checkRsync=checkRsync,exports.default=void 0;var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")),_toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")),_os=_interopRequireDefault(require("os")),_shelljs=_interopRequireDefault(require("shelljs")),_const=require("./const");function rsync(e,r,t,n){var o=_const.UnixMaxShellLen;"Windows_NT"===_os.default.type()&&(o=_const.WindowMaxShellLen),+process.env.MAX_COMMAND_LINE_LIMIT&&(o=+process.env.MAX_COMMAND_LINE_LIMIT);var s=Array.isArray(e)?e:[e],u=100+(r||"").length,l=u,a=s.reduce((function(e,r){return"string"!=typeof r||((l+=r.length+1)>o?(e.push([r]),l=u):e[e.length-1].push(r)),e}),[[]]);return Promise.all(a.map((function(e){return new Promise((function(o,s){var u=Array.isArray(e)?e:[e],l=_shelljs.default.exec(["rsync","-avzR"].concat((0,_toConsumableArray2.default)((t||[]).reduce((function(e,r){return e.push("--".concat(r.join("="))),e}),[])),(0,_toConsumableArray2.default)(u),[r]).join(" "),(0,_objectSpread2.default)({},n));console.log(""),0===l.code?(console.log(l.stdout),o()):(console.log(_const.logPrefix,l.stderr),s(new Error(l.stderr)))}))})))}function checkRsync(){return new Promise((function(e,r){var t=_shelljs.default.exec(("Windows_NT"===_os.default.type()?"where":"whereis")+" rsync",{silent:!0});0!==t.code?r(new Error(t.stderr)):e(t.stdout)}))}var _default=rsync;exports.default=_default;