UNPKG

watch-xdelta

Version:

smart-watch xdelta script

35 lines (31 loc) 905 B
/** * Created by iyww on 15/9/15. */ 'use strict'; import co from 'co'; import bfs from 'babel-fs'; /** * 生成校验和的低16位 * @param {Number} 校验和 * @return {Object.highHex} 校验和高字节 * @return {Object.lowHex} 校验和低字节 * */ export const checkSumToHex = function(num) { let hexStr = num.toString(16); let highHex = parseInt(hexStr.slice(-4, -2), 16); let lowHex = parseInt(hexStr.slice(-2), 16); return {highHex, lowHex}; }; /** * 截取文件最后32个字节 * @param {String} filename 文件名称 * @return {Object} 返回的对象中包含32字节tail,以及截去tail的新文件名称 * */ export const truncateLast32Bits = co.wrap(function *(filename) { let buffer = yield bfs.readFile(filename); let tempFile = `${filename}.temp`; yield bfs.writeFile(tempFile, buffer.slice(0, -32)); return {tail: buffer.slice(-32), tempFile}; });