Example #1
0
let tempAssets = (files) => {
  let folder = `${tempdir()}/${shortid.generate()}`;
  mkdir('-p', folder);

  files.forEach((file, index) => fs.writeFileSync(`${folder}/${index + 1}`, file));
  // prepared an empty file for revert
  fs.writeFileSync(`${folder}/0`, '');

  return folder;
};
Example #2
0
    let patch = jsdiff.createPatch(filename, oldStr, newStr);
    let reversePatch = jsdiff.createPatch(filename, newStr, oldStr);
    return {patch: patch, reverse_patch: reversePatch};
  },

  /*
    baseContent: it's old content
    patch: generate from old to new content
  */
  applyPatch(baseContent, patch) {
    return jsdiff.applyPatch(baseContent, jsdiff.parsePatch(patch));
  },

  merge(latestContent, baseContent, modifiedContent) {
    let folder = `${(new Date()).getTime()}`;
    folder = `${tempdir()}/${folder}`;

    mkdir('-p', folder);

    fs.writeFileSync(`${folder}/latest`, latestContent);
    fs.writeFileSync(`${folder}/original`, baseContent);
    fs.writeFileSync(`${folder}/modified`, modifiedContent);

    cd(folder);

    let result = exec("diff3 -m latest original modified", { silent: true });

    cd('~');
    rm('-rf', folder);

    return { text: result.stdout, error: result.stderr, exitStatus: result.code };