diff options
author | Pete Higgins <pete@peterhiggins.org> | 2020-04-23 16:38:38 -0700 |
---|---|---|
committer | Pete Higgins <pete@peterhiggins.org> | 2020-04-27 11:42:11 -0700 |
commit | 577401e402cae1e98b6de663fa3efd46856aa0b2 (patch) | |
tree | 3fa83d2a8118c2d5a335b68845c8f89431b5cdd5 /tasks | |
parent | 72fe034774a14566cf83e88690096929ff46b4ea (diff) | |
download | chef-577401e402cae1e98b6de663fa3efd46856aa0b2.tar.gz |
Add code to handle properties only set in docs on a few resources.
Signed-off-by: Pete Higgins <pete@peterhiggins.org>
Diffstat (limited to 'tasks')
-rwxr-xr-x | tasks/docs.rb | 102 |
1 files changed, 97 insertions, 5 deletions
diff --git a/tasks/docs.rb b/tasks/docs.rb index 49564b3686..b823b2f90f 100755 --- a/tasks/docs.rb +++ b/tasks/docs.rb @@ -160,24 +160,116 @@ namespace :docs_site do end end + def special_properties(name, data) + properties = {} + + properties["common_resource_functionality_multiple_packages"] = + case name + when "yum_package", "apt_package" + true + when "package" + nil + else + false + end + + properties["common_resource_functionality_resources_common_windows_security"] = name == "remote_directory" + + properties["cookbook_file_specificity"] = name == "cookbook_file" + + properties["debug_recipes_chef_shell"] = name == "breakpoint" + + properties["handler_custom"] = name == "chef_handler" + + properties["handler_types"] = name == "chef_handler" + + properties["nameless_apt_update"] = name == "apt_update" + + properties["nameless_build_essential"] = name == "build_essential" + + properties["properties_multiple_packages"] = ["dnf_package", "package", "zypper_package"].include?(name) + + properties["properties_resources_common_windows_security"] = ["cookbook_file", "file", "template", "remote_file", "directory"].include?(name) + + + properties["properties_shortcode"] = + case name + when "breakpoint" + "resource_breakpoint_properties.md" + when "ohai" + "resource_ohai_properties.md" + when "log" + "resource_log_properties.md" + else + nil + end + + properties["ps_credential_helper"] = name == "dsc_script" + + properties["registry_key"] = name == "registry_key" + + properties["remote_directory_recursive_directories"] = name == "remote_directory" + + properties["remote_file_prevent_re_downloads"] = name == "remote_file" + + properties["remote_file_unc_path"] = name == "remote_file" + + properties["resource_directory_recursive_directories"] = ["directory", "remote_directory"].include?(name) + + properties["resource_package_options"] = name == "package" + + properties["resources_common_atomic_update"] = ["cookbook_file", "file", "template", "remote_file"].include?(name) + + properties["resources_common_guard_interpreter"] = name == "script" + + properties["resources_common_guards"] = !["ruby_block", "chef_acl", "chef_environment", "chef_data_bag", "chef_mirror", "chef_container", "chef_client", "chef_organization", "remote_file", "chef_node", "chef_group", "breakpoint", "chef_role", "registry_key", "chef_data_bag_item", "chef_user", "package"].include?(name) + + properties["resources_common_notification"] = !["ruby_block", "chef_acl", "python", "chef_environment", "chef_data_bag", "chef_mirror", "perl", "chef_container", "chef_client", "chef_organization", "remote_file", "chef_node", "chef_group", "breakpoint", "chef_role", "registry_key", "chef_data_bag_item", "chef_user", "ruby", "package"].include?(name) + + properties["resources_common_properties"] = !["ruby_block", "chef_acl", "python", "chef_environment", "chef_data_bag", "chef_mirror", "perl", "chef_container", "chef_client", "chef_organization", "remote_file", "chef_node", "chef_group", "breakpoint", "chef_role", "registry_key", "chef_data_bag_item", "chef_user", "ruby", "package"].include?(name) + + properties["ruby_style_basics_chef_log"] = name == "log" + + properties["syntax_shortcode"] = + case name + when "breakpoint" + "resource_breakpoint_syntax.md" + when "log" + "resource_log_syntax.md" + else + nil + end + + properties["template_requirements"] = name == "template" + + properties["unit_file_verification"] = name == "systemd_unit" + + properties + end + # the main method that builds what will become the yaml file def build_resource_data(name, data) properties = data["properties"].reject { |v| v["name"] == "name" }.sort_by! { |v| v["name"] } r = {} + + # These properties are always set to these values. + r['draft'] = false + r['resource_reference'] = true + r['robots'] = nil + r['syntax_code_block'] = nil + + # These properties are set to special values for only a few resources. + r.merge!(special_properties(name, data)) + r['title'] = "#{name} resource" r['resource'] = name - r['draft'] = false r['aliases'] = ["/resource_#{name}.html"] r['menu'] = build_menu_item(name) - r['resource_reference'] = true - r['robots'] = nil r['resource_description_list'] = {} r['resource_description_list']['markdown'] = data['description'] r['resource_new_in'] = data["introduced"] - r['handler_types'] = name == "chef_handler" r['syntax_full_code_block'] = generate_resource_block(name, properties, data["default_action"]) - r['syntax_code_block'] = nil r['syntax_properties_list'] = nil r['syntax_full_properties_list'] = friendly_full_property_list(name, properties) r['properties_list'] = properties_list(properties) |