UNPKG

watch-xdelta

Version:

smart-watch xdelta script

66 lines (54 loc) 1.88 kB
/** * Created by iyww on 15/9/15. */ 'use strict'; var _regeneratorRuntime = require('babel-runtime/regenerator')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _co = require('co'); var _co2 = _interopRequireDefault(_co); var _babelFs = require('babel-fs'); var _babelFs2 = _interopRequireDefault(_babelFs); /** * 生成校验和的低16位 * @param {Number} 校验和 * @return {Object.highHex} 校验和高字节 * @return {Object.lowHex} 校验和低字节 * */ var checkSumToHex = function checkSumToHex(num) { var hexStr = num.toString(16); var highHex = parseInt(hexStr.slice(-4, -2), 16); var lowHex = parseInt(hexStr.slice(-2), 16); return { highHex: highHex, lowHex: lowHex }; }; exports.checkSumToHex = checkSumToHex; /** * 截取文件最后32个字节 * @param {String} filename 文件名称 * @return {Object} 返回的对象中包含32字节tail,以及截去tail的新文件名称 * */ var truncateLast32Bits = _co2['default'].wrap(_regeneratorRuntime.mark(function callee$0$0(filename) { var buffer, tempFile; return _regeneratorRuntime.wrap(function callee$0$0$(context$1$0) { while (1) switch (context$1$0.prev = context$1$0.next) { case 0: context$1$0.next = 2; return _babelFs2['default'].readFile(filename); case 2: buffer = context$1$0.sent; tempFile = filename + '.temp'; context$1$0.next = 6; return _babelFs2['default'].writeFile(tempFile, buffer.slice(0, -32)); case 6: return context$1$0.abrupt('return', { tail: buffer.slice(-32), tempFile: tempFile }); case 7: case 'end': return context$1$0.stop(); } }, callee$0$0, this); })); exports.truncateLast32Bits = truncateLast32Bits;