def main()

in Chef_Processors/ChefTemplate.py [0:0]


    def main(self):
        extra_formatting = ""
        block_name = "template"
        end_text = "end\n"
        self.env["chef_block"] = ""
        if not isinstance(self.env["resource_name"], basestring):
            # Not a string, assume it's an array of strings
            each_do_beginning = "[\n"
            each_do_end = "].each do |item|\n\t"
            self.env["chef_block"] = each_do_beginning
            for resource_name in self.env["resource_name"]:
                self.env["chef_block"] += "\t%s,\n" % resource_name
            self.env["chef_block"] += each_do_end
            name = "item"
            # insert an extra tab before everything
            extra_formatting = "\t"
            end_text = "\tend\nend\n"
        else:
            name = self.env["resource_name"]
        notif_text = "\tnot_if"
        onlyif_text = "\tonly_if"

        input_list = sorted(self.input_variables.keys())
        # Start the block
        self.env["chef_block"] += "%s %s do\n" % (block_name, name)
        # Place not_if guards first
        if self.env.get("not_if"):
            self.env["chef_block"] += "%s\t%s %s\n" % (
                extra_formatting,
                notif_text,
                self.env["not_if"],
            )
            input_list.remove("not_if")
        # Place only_if guards next
        if self.env.get("only_if"):
            self.env["chef_block"] += "%s\t%s %s\n" % (
                extra_formatting,
                onlyif_text,
                self.env["only_if"],
            )
            input_list.remove("only_if")
        input_list.remove("resource_name")
        # Loop through all keys
        for key in input_list:
            if self.env.get(key, ""):
                key_text = "\t%s" % key
                self.env["chef_block"] += "%s\t%s %s\n" % (
                    extra_formatting,
                    key_text,
                    self.env[key],
                )
            # clear out the key so it doesn't poison future runs
            self.env[key] = ""
        # end it
        self.env["chef_block"] += end_text
        self.output("Chef block:\n%s" % self.env["chef_block"])