def runMergeTool(self, filename, formatted):
        if self.mergetool is None and self.options.mergetool is not None:
            self.mergetool = MergeTool(self.options.mergetool)

        orig = open(filename, 'r')
        originalscript = orig.read()
        orig.close()
        if originalscript == formatted:
            return

        if self.mergetool is not None:

            modname = os.path.splitext(os.path.basename(filename))[0]

            t1 = subprocess.Popen(["mktemp", "-d"], stdout=subprocess.PIPE)
            tempdir = t1.communicate()[0].strip()
            tempclean = os.path.join(tempdir, modname + ".Decrufted.cmake")
            temporig = os.path.join(tempdir, modname + ".Original.cmake")

            temporigfile = open(temporig, 'w', False)
            temporigfile.write(originalscript)
            temporigfile.close()

            tempcleanfile = open(tempclean, 'w', False)
            tempcleanfile.write(formatted)
            tempcleanfile.close()

            self.mergetool.run(tempclean, filename, temporig)
        else:
            # If we aren't merging, print the formatted output
            print
            formatted