approvals
Version:
Approval Tests Library - Capturing Human Intelligence
40 lines (35 loc) • 1.12 kB
text/typescript
import fs from "fs";
import shelljs from "shelljs";
import { GenericDiffReporterBase } from "../GenericDiffReporterBase";
import { platform } from "../../osTools";
import { searchForExecutable } from "../../AUtils";
export default class P4MergeReporter extends GenericDiffReporterBase {
constructor() {
super("P4Merge");
let app = null;
if (platform.isMac) {
try {
app = shelljs.ls(
"/Applications/p4merge.app/Contents/Resources/launchp4merge",
)[0];
} catch (err) {
console.error(err);
}
try {
// `shelljs.find` will `process.exit` on error - so test the folder exists first
if (fs.existsSync("/opt/homebrew-cask/Caskroom/p4merge")) {
app =
app ||
shelljs
.find("/opt/homebrew-cask/Caskroom/p4merge")
.filter(function (item) {
return item.indexOf("launchp4merge") >= 0;
})[0];
}
} catch (err) {
//console.error(err);
}
}
this.exePath = app || searchForExecutable("Perforce", "p4merge.exe");
}
}