Example #1
0
    def createAndComplete(self, **options):
        if not os.path.exists(self.fromPath):
            safe_mkdir(self.fromPath)

        root = self.root or self.fromPath
        self.file = self.projectSettingsFile(root)

        optionChanged = [
            1 for key in self.persistent_options if options.get(key)
        ]

        if optionChanged or not os.path.exists(self.file):
            with open(self.file, "w") as pio:
                json.dump(
                    {
                        "pytex": {
                            "version":
                            get_version(),
                            "options":
                            dict((key, options.get(key))
                                 for key in self.persistent_options)
                        }
                    },
                    pio,
                    indent=4)
            self.root = root

        return self.complete(**options)
Example #2
0
    def createAndComplete(self, **options):
        if not os.path.exists(self.fromPath):
            safe_mkdir(self.fromPath)

        root      = self.root or self.fromPath
        self.file = self.projectSettingsFile(root)

        optionChanged = [
            1
            for key in self.persistent_options
            if options.get(key)
        ]

        if optionChanged or not os.path.exists(self.file):
            with open(self.file,"w") as pio:
                json.dump(
                    {
                        "pytex" : {
                            "version" : get_version(),
                            "options" : dict((key, options.get(key)) for key in self.persistent_options)
                        }
                    },
                    pio
                    , indent = 4
                )
            self.root = root

        return self.complete(**options)
Example #3
0
 def render_folder(self, fromPath, toPath, **args):
     for child in os.listdir(fromPath):
         fullChild = os.path.join(fromPath, child)
         if os.path.isdir(fullChild):
             dest = os.path.join(toPath, child) if toPath else child
             safe_mkdir(os.path.join(self.project_root, dest))
             self.render_folder(fullChild, dest, **args)
         elif os.path.isfile(fullChild):
             self.render_file(fromPath, toPath, child, **args)
     return os.path.join(self.project_root, toPath)
Example #4
0
 def render_folder(self, fromPath, toPath, **args):
     for child in os.listdir(fromPath):
         fullChild = os.path.join(fromPath,child)
         if os.path.isdir(fullChild):
             dest = os.path.join(toPath,child) if toPath else child
             safe_mkdir(os.path.join(self.project_root,dest))
             self.render_folder(fullChild,dest,**args)
         elif os.path.isfile(fullChild):
             self.render_file(
                 fromPath, toPath,
                 child,
                 **args
             )
     return os.path.join(self.project_root,toPath)
Example #5
0
    def copy_templates(self):
        self.log(1, "COPY TEMPLATES")
        self.log(1, "- from %s" % self.template)
        self.log(1, "-   to %s" % self.template)

        safe_mkdir(self.project_templates_path)
        for tmpl in ["_common", self.template]:
            self.render_folder(os.path.join(PYTEX_TEMPLATES_PATH, tmpl),
                               self.TEMPLATES_FOLDER,
                               rule={"overwrite": True})
        self.create_project_tree()
        settings = self.render_file(self.project_templates_path,
                                    self.SETTINGS_FOLDER, "config.json")[0]
        env = self.load_json(settings)
        if env.get("settings_todo"):
            self.log(0, "Don't forget to update : %s" % settings)
            for key in env["settings_todo"].keys():
                self.log(0, " - {0}".format(key))
Example #6
0
    def copy_templates(self):
        self.log(1, "COPY TEMPLATES")
        self.log(1, "- from %s" % self.template)
        self.log(1, "-   to %s" % self.template)

        safe_mkdir(self.project_templates_path)
        for tmpl in [ "_common" , self.template ]:
            self.render_folder(
                os.path.join(PYTEX_TEMPLATES_PATH, tmpl),
                self.TEMPLATES_FOLDER,
                rule = {
                    "overwrite" : True
                }
            )
        self.create_project_tree()
        settings = self.render_file(self.project_templates_path, self.SETTINGS_FOLDER, "config.json")[0]
        env      = self.load_json(settings)
        if env.get("settings_todo"):
            self.log(0,"Don't forget to update : %s" % settings)
            for key in env["settings_todo"].keys():
                self.log(0," - {0}".format(key))