def main(self):
        parser = OptionParser(
            usage="usage: %prog [options] [[file|dir]...]",
            version="%prog 0.5, part of the cmakescript tools")

        parser.add_option("-m",
                          "--merge",
                          type="choice",
                          choices=MergeTool.mergetools.keys(),
                          metavar="APPNAME",
                          dest="mergetool",
                          default=None,
                          help="open a diff/merge app APPNAME for each file "
                          "processed.  Supported APPNAME options are: " +
                          " ".join(MergeTool.mergetools.keys()))

        parser.add_option("-q",
                          "--quiet",
                          action="store_false",
                          dest="verbose",
                          default=True,
                          help="don't print status messages to stdout")
        parser.add_option("-i",
                          "--inplace",
                          action="store_true",
                          dest="inplace",
                          default=False,
                          help="overwrite files with changes inplace")

        (self.options, args) = parser.parse_args(self.args_in)

        if len(args) == 0:
            args.append(os.getcwd())

        inputfiles = []

        for arg in args:
            inputfiles.extend(cmakescript.find_cmake_scripts(arg))

        for infile, number in zip(inputfiles, range(1, len(inputfiles) + 1)):
            print
            "------------------------"
            print
            infile + " - " + str(number) + " of " + str(len(inputfiles))
            print
            "------------------------"

            output = self.processFile(infile)
            if output is not None:
                # A trailing newline
                output = output + "\n"
                self.runMergeTool(infile, output)
                if self.options.inplace:
                    open(infile, 'wb').writelines(output)
    def main(self):
        parser = OptionParser(usage="usage: %prog [options] [[file|dir]...]",
                              version="%prog 0.5, part of the cmakescript tools")

        parser.add_option("-m", "--merge",
                          type="choice",
                          choices=MergeTool.mergetools.keys(),
                          metavar="APPNAME",
                          dest="mergetool",
                          default=None,
                          help="open a diff/merge app APPNAME for each file "
                               "processed.  Supported APPNAME options are: " +
                               " ".join(MergeTool.mergetools.keys())
                          )

        parser.add_option("-q", "--quiet",
                          action="store_false", dest="verbose", default=True,
                          help="don't print status messages to stdout")
        parser.add_option("-i", "--inplace",
                        action="store_true", dest="inplace", default=False,
                        help="overwrite files with changes inplace")

        (self.options, args) = parser.parse_args(self.args_in)

        if len(args) == 0:
            args.append(os.getcwd())

        inputfiles = []

        for arg in args:
            inputfiles.extend(cmakescript.find_cmake_scripts(arg))

        for infile, number in zip(inputfiles, range(1, len(inputfiles) + 1)):
            print
            "------------------------"
            print
            infile + " - " + str(number) + " of " + str(len(inputfiles))
            print
            "------------------------"

            output = self.processFile(infile)
            if output is not None:
                # A trailing newline
                output = output + "\n"
                self.runMergeTool(infile, output)
                if self.options.inplace:
                    open(infile, 'wb').writelines(output)
    def main(self):
        parser = OptionParser(
            usage="usage: %prog [options] [[file|dir]...]",
            version="%prog 0.5, part of the cmakescript tools")

        parser.add_option("-m",
                          "--merge",
                          type="choice",
                          choices=MergeTool.mergetools.keys(),
                          metavar="APPNAME",
                          dest="mergetool",
                          default=None,
                          help="open a diff/merge app APPNAME for each file "
                          "processed.  Supported APPNAME options are: " +
                          " ".join(MergeTool.mergetools.keys()))

        parser.add_option("-q",
                          "--quiet",
                          action="store_false",
                          dest="verbose",
                          default=True,
                          help="don't print status messages to stdout")

        (self.options, args) = parser.parse_args(self.args_in)

        if len(args) == 0:
            args.append(os.getcwd())

        inputfiles = []

        for arg in args:
            inputfiles.extend(cmakescript.find_cmake_scripts(arg))

        dependencies["findmodules"] = {}
        dependencies["othermodules"] = {}
        dependencies["optionalmodules"] = {}
        dependencies["files"] = {}
        dependencies["optionalfiles"] = {}

        knownfiles = [os.path.relpath(x) for x in inputfiles]
        justname = lambda x: os.path.splitext(os.path.basename(x))[0]
        allmodules["found"] = [justname(x) for x in knownfiles]
        t1 = subprocess.Popen(["cmake", "--help-modules-list"],
                              stdout=subprocess.PIPE)
        allmodules["system"] = [
            x.strip() for x in t1.communicate()[0].splitlines()[1:]
        ]

        nodes = {}
        edges = []

        for key, val in allmodules.iteritems():
            findmodules[key] = [
                x for x in allmodules[key] if re.match(r"Find", x)
            ]
            othermodules[key] = [
                x for x in allmodules[key] if re.match(r"Find", x) is None
            ]

        for infile, number in zip(inputfiles, range(1, len(inputfiles) + 1)):
            print "------------------------"
            print infile + " - " + str(number) + " of " + str(len(inputfiles))
            print "------------------------"

            visitor = self.processFile(infile)
            shortname = os.path.relpath(infile)
            pathto = os.path.split(shortname)[0]

            dependencies["findmodules"][shortname] = visitor.findmodules
            dependencies["othermodules"][shortname] = visitor.modules
            dependencies["othermodules"][shortname] = visitor.modules
            dependencies["optionalmodules"][
                shortname] = visitor.optionalmodules
            dependencies["files"][shortname] = [
                os.path.join(pathto, x) for x in visitor.files
            ]
            dependencies["optionalfiles"][shortname] = [
                os.path.join(pathto, x) for x in visitor.optionalfiles
            ]
    def main(self):
        parser = OptionParser(usage="usage: %prog [options] [[file|dir]...]",
                              version="%prog 0.5, part of the cmakescript tools")

        parser.add_option("-m", "--merge",
                          type="choice",
                          choices=MergeTool.mergetools.keys(),
                          metavar="APPNAME",
                          dest="mergetool",
                          default=None,
                          help="open a diff/merge app APPNAME for each file "
                               "processed.  Supported APPNAME options are: " +
                               " ".join(MergeTool.mergetools.keys())
                          )

        parser.add_option("-q", "--quiet",
                          action="store_false", dest="verbose", default=True,
                          help="don't print status messages to stdout")

        (self.options, args) = parser.parse_args(self.args_in)

        if len(args) == 0:
            args.append(os.getcwd())

        inputfiles = []

        for arg in args:
            inputfiles.extend(cmakescript.find_cmake_scripts(arg))

        dependencies["findmodules"] = {}
        dependencies["othermodules"] = {}
        dependencies["optionalmodules"] = {}
        dependencies["files"] = {}
        dependencies["optionalfiles"] = {}

        knownfiles = [os.path.relpath(x) for x in inputfiles]
        justname = lambda x: os.path.splitext(os.path.basename(x))[0]
        allmodules["found"] = [justname(x) for x in knownfiles]
        t1 = subprocess.Popen(["cmake", "--help-modules-list"], stdout=subprocess.PIPE)
        allmodules["system"] = [x.strip()
                                for x in t1.communicate()[0].splitlines()[1:]]

        nodes = {}
        edges = []

        for key, val in allmodules.iteritems():
            findmodules[key] = [x
                                for x in allmodules[key]
                                if re.match(r"Find", x)]
            othermodules[key] = [x
                                 for x in allmodules[key]
                                 if re.match(r"Find", x) is None]

        for infile, number in zip(inputfiles, range(1, len(inputfiles) + 1)):
            print
            "------------------------"
            print
            infile + " - " + str(number) + " of " + str(len(inputfiles))
            print
            "------------------------"

            visitor = self.processFile(infile)
            shortname = os.path.relpath(infile)
            pathto = os.path.split(shortname)[0]

            dependencies["findmodules"][shortname] = visitor.findmodules
            dependencies["othermodules"][shortname] = visitor.modules
            dependencies["othermodules"][shortname] = visitor.modules
            dependencies["optionalmodules"][shortname] = visitor.optionalmodules
            dependencies["files"][shortname] = [os.path.join(pathto, x)
                                                for x in visitor.files]
            dependencies["optionalfiles"][shortname] = [os.path.join(pathto, x)
                                                        for x in visitor.optionalfiles]