watch-xdelta
Version:
smart-watch xdelta script
35 lines (31 loc) • 905 B
JavaScript
/**
* Created by iyww on 15/9/15.
*/
;
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};
});