webgen 0.5.17 → 1.0.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/API.rdoc +143 -0
- data/AUTHORS +0 -1
- data/COPYING +17 -8
- data/ChangeLog +4456 -0
- data/GPL +623 -289
- data/README.md +71 -0
- data/Rakefile +87 -99
- data/VERSION +1 -1
- data/bin/webgen +1 -7
- data/data/webgen/basic_website_template/ext/init.rb +15 -0
- data/data/webgen/basic_website_template/webgen.config +18 -0
- data/data/webgen/bundle_template_files/README.md.erb +24 -0
- data/data/webgen/bundle_template_files/Rakefile.erb +36 -0
- data/data/webgen/bundle_template_files/info.yaml.erb +16 -0
- data/data/webgen/bundle_template_files/init.rb.erb +1 -0
- data/data/webgen/passive_sources/default.metainfo +32 -0
- data/data/webgen/passive_sources/stylesheets/coderay-default.css +109 -118
- data/data/webgen/passive_sources/templates/feed.template +62 -0
- data/data/webgen/passive_sources/templates/sitemap.template +3 -6
- data/data/webgen/passive_sources/templates/tag.template +42 -0
- data/data/webgen/website_bundles/default/README +2 -2
- data/lib/webgen/blackboard.rb +15 -51
- data/lib/webgen/bundle/built-in-show-changes/init.rb +54 -0
- data/lib/webgen/bundle/built-in/init.rb +366 -0
- data/lib/webgen/bundle_loader.rb +126 -0
- data/lib/webgen/cache.rb +9 -18
- data/lib/webgen/cli.rb +131 -58
- data/lib/webgen/cli/bundle_command.rb +30 -0
- data/lib/webgen/cli/create_bundle_command.rb +46 -0
- data/lib/webgen/cli/create_command.rb +48 -60
- data/lib/webgen/cli/generate_command.rb +25 -0
- data/lib/webgen/cli/install_bundle_command.rb +34 -0
- data/lib/webgen/cli/list_bundle_command.rb +108 -0
- data/lib/webgen/cli/logger.rb +45 -0
- data/lib/webgen/cli/show_command.rb +30 -0
- data/lib/webgen/cli/show_config_command.rb +63 -0
- data/lib/webgen/cli/show_dependencies_command.rb +103 -0
- data/lib/webgen/cli/show_extensions_command.rb +74 -0
- data/lib/webgen/cli/utils.rb +68 -95
- data/lib/webgen/configuration.rb +143 -105
- data/lib/webgen/content_processor.rb +160 -0
- data/lib/webgen/content_processor/blocks.rb +96 -0
- data/lib/webgen/content_processor/builder.rb +25 -0
- data/lib/webgen/content_processor/erb.rb +25 -0
- data/lib/webgen/content_processor/erubis.rb +31 -0
- data/lib/webgen/content_processor/fragments.rb +82 -0
- data/lib/webgen/content_processor/haml.rb +25 -0
- data/lib/webgen/content_processor/html_head.rb +157 -0
- data/lib/webgen/content_processor/kramdown.rb +49 -0
- data/lib/webgen/content_processor/maruku.rb +39 -0
- data/lib/webgen/content_processor/r_discount.rb +21 -0
- data/lib/webgen/content_processor/rdoc.rb +22 -0
- data/lib/webgen/content_processor/redcloth.rb +23 -0
- data/lib/webgen/content_processor/ruby.rb +20 -0
- data/lib/webgen/content_processor/sass.rb +145 -0
- data/lib/webgen/content_processor/scss.rb +23 -0
- data/lib/webgen/content_processor/tags.rb +30 -0
- data/lib/webgen/content_processor/tidy.rb +32 -0
- data/lib/webgen/content_processor/tikz.rb +116 -0
- data/lib/webgen/content_processor/xmllint.rb +31 -0
- data/lib/webgen/context.rb +57 -29
- data/lib/webgen/context/html_head.rb +60 -0
- data/lib/webgen/context/nodes.rb +32 -27
- data/lib/webgen/context/rendering.rb +39 -0
- data/lib/webgen/context/webgen_tags.rb +25 -0
- data/lib/webgen/core_ext.rb +25 -0
- data/lib/webgen/destination.rb +151 -0
- data/lib/webgen/destination/file_system.rb +62 -0
- data/lib/webgen/error.rb +59 -49
- data/lib/webgen/extension_manager.rb +121 -0
- data/lib/webgen/item_tracker.rb +237 -0
- data/lib/webgen/item_tracker/file.rb +39 -0
- data/lib/webgen/item_tracker/missing_node.rb +61 -0
- data/lib/webgen/item_tracker/node_content.rb +40 -0
- data/lib/webgen/item_tracker/node_meta_info.rb +53 -0
- data/lib/webgen/item_tracker/nodes.rb +92 -0
- data/lib/webgen/logger.rb +26 -82
- data/lib/webgen/node.rb +122 -367
- data/lib/webgen/node_finder.rb +336 -0
- data/lib/webgen/page.rb +48 -85
- data/lib/webgen/path.rb +218 -156
- data/lib/webgen/path_handler.rb +400 -0
- data/lib/webgen/path_handler/base.rb +220 -0
- data/lib/webgen/path_handler/copy.rb +78 -0
- data/lib/webgen/path_handler/directory.rb +21 -0
- data/lib/webgen/path_handler/feed.rb +82 -0
- data/lib/webgen/path_handler/meta_info.rb +84 -0
- data/lib/webgen/path_handler/page.rb +38 -0
- data/lib/webgen/path_handler/page_utils.rb +79 -0
- data/lib/webgen/path_handler/sitemap.rb +52 -0
- data/lib/webgen/path_handler/template.rb +96 -0
- data/lib/webgen/path_handler/virtual.rb +85 -0
- data/lib/webgen/{webgentask.rb → rake_task.rb} +31 -27
- data/lib/webgen/source.rb +106 -24
- data/lib/webgen/source/file_system.rb +41 -0
- data/lib/webgen/source/stacked.rb +49 -53
- data/lib/webgen/source/tar_archive.rb +59 -0
- data/lib/webgen/tag.rb +250 -19
- data/lib/webgen/tag/breadcrumb_trail.rb +65 -0
- data/lib/webgen/tag/coderay.rb +32 -35
- data/lib/webgen/tag/date.rb +9 -9
- data/lib/webgen/tag/execute_command.rb +31 -0
- data/lib/webgen/tag/include_file.rb +32 -0
- data/lib/webgen/tag/langbar.rb +31 -47
- data/lib/webgen/tag/link.rb +17 -18
- data/lib/webgen/tag/menu.rb +27 -189
- data/lib/webgen/tag/meta_info.rb +31 -0
- data/lib/webgen/tag/relocatable.rb +48 -39
- data/lib/webgen/tag/tikz.rb +24 -100
- data/lib/webgen/task.rb +99 -0
- data/lib/webgen/task/create_bundle.rb +73 -0
- data/lib/webgen/task/create_website.rb +94 -0
- data/lib/webgen/task/generate_website.rb +47 -0
- data/lib/webgen/test_helper.rb +183 -0
- data/lib/webgen/tree.rb +95 -46
- data/lib/webgen/utils.rb +39 -0
- data/lib/webgen/utils/external_command.rb +27 -0
- data/lib/webgen/utils/tag_parser.rb +124 -0
- data/lib/webgen/version.rb +1 -1
- data/lib/webgen/website.rb +134 -296
- data/setup.rb +1 -1
- data/test/test_documentation.rb +43 -0
- data/test/webgen/cli/test_logger.rb +41 -0
- data/test/{test_contentprocessor_blocks.rb → webgen/content_processor/test_blocks.rb} +30 -28
- data/test/webgen/content_processor/test_builder.rb +25 -0
- data/test/webgen/content_processor/test_erb.rb +21 -0
- data/test/webgen/content_processor/test_erubis.rb +33 -0
- data/test/webgen/content_processor/test_fragments.rb +96 -0
- data/test/webgen/content_processor/test_haml.rb +24 -0
- data/test/webgen/content_processor/test_html_head.rb +78 -0
- data/test/webgen/content_processor/test_kramdown.rb +49 -0
- data/test/webgen/content_processor/test_maruku.rb +30 -0
- data/test/webgen/content_processor/test_r_discount.rb +18 -0
- data/test/webgen/content_processor/test_rdoc.rb +18 -0
- data/test/webgen/content_processor/test_redcloth.rb +23 -0
- data/test/webgen/content_processor/test_ruby.rb +24 -0
- data/test/webgen/content_processor/test_sass.rb +44 -0
- data/test/webgen/content_processor/test_scss.rb +23 -0
- data/test/webgen/content_processor/test_tags.rb +44 -0
- data/test/webgen/content_processor/test_tidy.rb +31 -0
- data/test/webgen/content_processor/test_tikz.rb +33 -0
- data/test/webgen/content_processor/test_xmllint.rb +32 -0
- data/test/webgen/destination/test_file_system.rb +54 -0
- data/test/webgen/item_tracker/test_file.rb +31 -0
- data/test/webgen/item_tracker/test_missing_node.rb +70 -0
- data/test/webgen/item_tracker/test_node_content.rb +42 -0
- data/test/webgen/item_tracker/test_node_meta_info.rb +44 -0
- data/test/webgen/item_tracker/test_nodes.rb +61 -0
- data/test/webgen/path_handler/test_base.rb +153 -0
- data/test/webgen/path_handler/test_copy.rb +56 -0
- data/test/webgen/path_handler/test_feed.rb +85 -0
- data/test/webgen/path_handler/test_meta_info.rb +98 -0
- data/test/webgen/path_handler/test_page.rb +25 -0
- data/test/webgen/path_handler/test_page_utils.rb +59 -0
- data/test/webgen/path_handler/test_sitemap.rb +95 -0
- data/test/webgen/path_handler/test_template.rb +64 -0
- data/test/webgen/path_handler/test_virtual.rb +87 -0
- data/test/webgen/source/test_file_system.rb +51 -0
- data/test/webgen/source/test_stacked.rb +35 -0
- data/test/{test_source_tararchive.rb → webgen/source/test_tar_archive.rb} +10 -25
- data/test/webgen/tag/test_breadcrumb_trail.rb +66 -0
- data/test/webgen/tag/test_coderay.rb +34 -0
- data/test/webgen/tag/test_date.rb +18 -0
- data/test/webgen/tag/test_execute_command.rb +36 -0
- data/test/webgen/tag/test_include_file.rb +35 -0
- data/test/webgen/tag/test_langbar.rb +50 -0
- data/test/webgen/tag/test_link.rb +40 -0
- data/test/webgen/tag/test_menu.rb +61 -0
- data/test/webgen/tag/test_meta_info.rb +25 -0
- data/test/webgen/tag/test_relocatable.rb +50 -0
- data/test/webgen/tag/test_tikz.rb +41 -0
- data/test/webgen/task/test_create_website.rb +46 -0
- data/test/webgen/test_blackboard.rb +31 -0
- data/test/webgen/test_bundle_loader.rb +55 -0
- data/test/{test_cache.rb → webgen/test_cache.rb} +3 -15
- data/test/webgen/test_cli.rb +41 -0
- data/test/webgen/test_configuration.rb +131 -0
- data/test/webgen/test_content_processor.rb +86 -0
- data/test/webgen/test_context.rb +73 -0
- data/test/webgen/test_core_ext.rb +20 -0
- data/test/webgen/test_destination.rb +48 -0
- data/test/webgen/test_error.rb +121 -0
- data/test/webgen/test_extension_manager.rb +70 -0
- data/test/webgen/test_item_tracker.rb +106 -0
- data/test/{test_languages.rb → webgen/test_languages.rb} +4 -4
- data/test/webgen/test_logger.rb +46 -0
- data/test/webgen/test_node.rb +178 -0
- data/test/webgen/test_node_finder.rb +127 -0
- data/test/{test_page.rb → webgen/test_page.rb} +44 -48
- data/test/webgen/test_path.rb +271 -0
- data/test/{test_webgentask.rb → webgen/test_rake_task.rb} +4 -4
- data/test/webgen/test_source.rb +59 -0
- data/test/webgen/test_tag.rb +137 -0
- data/test/webgen/test_task.rb +40 -0
- data/test/webgen/test_tree.rb +147 -0
- data/test/webgen/test_utils.rb +16 -0
- data/test/webgen/test_website.rb +45 -0
- data/test/webgen/utils/test_tag_parser.rb +99 -0
- metadata +292 -344
- data/data/webgen/passive_sources/templates/atom_feed.template +0 -39
- data/data/webgen/passive_sources/templates/rss_feed.template +0 -28
- data/data/webgen/resources.yaml +0 -4
- data/data/webgen/webgui/app.rb +0 -11
- data/data/webgen/webgui/controller/main.rb +0 -135
- data/data/webgen/webgui/layout/default.xhtml +0 -40
- data/data/webgen/webgui/overrides/win32console.rb +0 -0
- data/data/webgen/webgui/public/css/jquery.autocomplete.css +0 -50
- data/data/webgen/webgui/public/css/ramaze_error.css +0 -90
- data/data/webgen/webgui/public/css/style.css +0 -55
- data/data/webgen/webgui/public/img/headerbg.jpg +0 -0
- data/data/webgen/webgui/public/img/webgen_logo.png +0 -0
- data/data/webgen/webgui/public/js/jquery.autocomplete.js +0 -15
- data/data/webgen/webgui/public/js/jquery.js +0 -32
- data/data/webgen/webgui/start.rb +0 -9
- data/data/webgen/webgui/view/create_website.xhtml +0 -14
- data/data/webgen/webgui/view/error.xhtml +0 -64
- data/data/webgen/webgui/view/index.xhtml +0 -22
- data/data/webgen/webgui/view/manage_website.xhtml +0 -18
- data/data/webgen/website_skeleton/README +0 -10
- data/data/webgen/website_skeleton/Rakefile +0 -69
- data/data/webgen/website_skeleton/config.yaml +0 -35
- data/data/webgen/website_skeleton/ext/init.rb +0 -10
- data/doc/contentprocessor.template +0 -11
- data/doc/contentprocessor/blocks.page +0 -129
- data/doc/contentprocessor/builder.page +0 -79
- data/doc/contentprocessor/erb.page +0 -60
- data/doc/contentprocessor/erubis.page +0 -46
- data/doc/contentprocessor/fragments.page +0 -26
- data/doc/contentprocessor/haml.page +0 -46
- data/doc/contentprocessor/head.page +0 -31
- data/doc/contentprocessor/kramdown.page +0 -49
- data/doc/contentprocessor/less.page +0 -34
- data/doc/contentprocessor/maruku.page +0 -44
- data/doc/contentprocessor/rdiscount.page +0 -37
- data/doc/contentprocessor/rdoc.page +0 -36
- data/doc/contentprocessor/redcloth.page +0 -41
- data/doc/contentprocessor/sass.page +0 -31
- data/doc/contentprocessor/scss.page +0 -39
- data/doc/contentprocessor/tags.page +0 -73
- data/doc/contentprocessor/tidy.page +0 -14
- data/doc/contentprocessor/xmllint.page +0 -14
- data/doc/extensions.metainfo +0 -29
- data/doc/extensions.page +0 -15
- data/doc/extensions.template +0 -17
- data/doc/faq.page +0 -222
- data/doc/getting_started.page +0 -135
- data/doc/index.page +0 -71
- data/doc/manual.page +0 -727
- data/doc/reference_configuration.page +0 -1254
- data/doc/reference_metainfo.page +0 -265
- data/doc/reference_website_styles.page +0 -32
- data/doc/source/filesystem.page +0 -41
- data/doc/source/tararchive.page +0 -40
- data/doc/sourcehandler.template +0 -23
- data/doc/sourcehandler/copy.page +0 -19
- data/doc/sourcehandler/directory.page +0 -27
- data/doc/sourcehandler/feed.page +0 -102
- data/doc/sourcehandler/metainfo.page +0 -48
- data/doc/sourcehandler/page.page +0 -14
- data/doc/sourcehandler/sitemap.page +0 -46
- data/doc/sourcehandler/template.page +0 -45
- data/doc/sourcehandler/virtual.page +0 -49
- data/doc/tag.template +0 -25
- data/doc/tag/breadcrumbtrail.page +0 -40
- data/doc/tag/coderay.page +0 -53
- data/doc/tag/date.page +0 -31
- data/doc/tag/executecommand.page +0 -26
- data/doc/tag/includefile.page +0 -32
- data/doc/tag/langbar.page +0 -47
- data/doc/tag/link.page +0 -44
- data/doc/tag/menu.page +0 -109
- data/doc/tag/metainfo.page +0 -29
- data/doc/tag/relocatable.page +0 -38
- data/doc/tag/sitemap.page +0 -31
- data/doc/tag/tikz.page +0 -159
- data/doc/upgrading.page +0 -138
- data/doc/webgen_page_format.page +0 -129
- data/doc/website_styles.metainfo +0 -8
- data/lib/webgen/cli/apply_command.rb +0 -66
- data/lib/webgen/cli/run_command.rb +0 -22
- data/lib/webgen/cli/webgui_command.rb +0 -68
- data/lib/webgen/common.rb +0 -27
- data/lib/webgen/common/sitemap.rb +0 -83
- data/lib/webgen/contentprocessor.rb +0 -117
- data/lib/webgen/contentprocessor/blocks.rb +0 -92
- data/lib/webgen/contentprocessor/builder.rb +0 -29
- data/lib/webgen/contentprocessor/erb.rb +0 -26
- data/lib/webgen/contentprocessor/erubis.rb +0 -39
- data/lib/webgen/contentprocessor/fragments.rb +0 -25
- data/lib/webgen/contentprocessor/haml.rb +0 -34
- data/lib/webgen/contentprocessor/head.rb +0 -128
- data/lib/webgen/contentprocessor/kramdown.rb +0 -27
- data/lib/webgen/contentprocessor/kramdown/html.rb +0 -36
- data/lib/webgen/contentprocessor/less.rb +0 -35
- data/lib/webgen/contentprocessor/maruku.rb +0 -36
- data/lib/webgen/contentprocessor/rdiscount.rb +0 -19
- data/lib/webgen/contentprocessor/rdoc.rb +0 -20
- data/lib/webgen/contentprocessor/redcloth.rb +0 -21
- data/lib/webgen/contentprocessor/sass.rb +0 -22
- data/lib/webgen/contentprocessor/scss.rb +0 -22
- data/lib/webgen/contentprocessor/tags.rb +0 -170
- data/lib/webgen/contentprocessor/tidy.rb +0 -38
- data/lib/webgen/contentprocessor/xmllint.rb +0 -37
- data/lib/webgen/context/render.rb +0 -32
- data/lib/webgen/context/tags.rb +0 -20
- data/lib/webgen/coreext.rb +0 -13
- data/lib/webgen/default_config.rb +0 -240
- data/lib/webgen/loggable.rb +0 -25
- data/lib/webgen/output.rb +0 -86
- data/lib/webgen/output/filesystem.rb +0 -69
- data/lib/webgen/source/filesystem.rb +0 -61
- data/lib/webgen/source/resource.rb +0 -45
- data/lib/webgen/source/tararchive.rb +0 -78
- data/lib/webgen/sourcehandler.rb +0 -275
- data/lib/webgen/sourcehandler/base.rb +0 -281
- data/lib/webgen/sourcehandler/copy.rb +0 -44
- data/lib/webgen/sourcehandler/directory.rb +0 -30
- data/lib/webgen/sourcehandler/feed.rb +0 -92
- data/lib/webgen/sourcehandler/fragment.rb +0 -70
- data/lib/webgen/sourcehandler/memory.rb +0 -42
- data/lib/webgen/sourcehandler/metainfo.rb +0 -128
- data/lib/webgen/sourcehandler/page.rb +0 -64
- data/lib/webgen/sourcehandler/sitemap.rb +0 -60
- data/lib/webgen/sourcehandler/template.rb +0 -66
- data/lib/webgen/sourcehandler/virtual.rb +0 -117
- data/lib/webgen/tag/base.rb +0 -170
- data/lib/webgen/tag/breadcrumbtrail.rb +0 -70
- data/lib/webgen/tag/executecommand.rb +0 -31
- data/lib/webgen/tag/includefile.rb +0 -42
- data/lib/webgen/tag/metainfo.rb +0 -27
- data/lib/webgen/tag/sitemap.rb +0 -41
- data/lib/webgen/websiteaccess.rb +0 -31
- data/lib/webgen/websitemanager.rb +0 -125
- data/misc/default.css +0 -403
- data/misc/default.template +0 -76
- data/misc/htmldoc.metainfo +0 -26
- data/misc/htmldoc.virtual +0 -17
- data/misc/images/arrow.gif +0 -0
- data/misc/images/error.png +0 -0
- data/misc/images/headerbg.jpg +0 -0
- data/misc/images/important.png +0 -0
- data/misc/images/information.png +0 -0
- data/misc/images/quote.gif +0 -0
- data/misc/images/warning.png +0 -0
- data/misc/logo.svg +0 -313
- data/misc/style.page +0 -33
- data/test/helper.rb +0 -61
- data/test/test_blackboard.rb +0 -60
- data/test/test_cli.rb +0 -119
- data/test/test_common_sitemap.rb +0 -58
- data/test/test_configuration.rb +0 -68
- data/test/test_contentprocessor.rb +0 -39
- data/test/test_contentprocessor_builder.rb +0 -41
- data/test/test_contentprocessor_erb.rb +0 -33
- data/test/test_contentprocessor_erubis.rb +0 -62
- data/test/test_contentprocessor_fragments.rb +0 -43
- data/test/test_contentprocessor_haml.rb +0 -39
- data/test/test_contentprocessor_head.rb +0 -96
- data/test/test_contentprocessor_kramdown.rb +0 -56
- data/test/test_contentprocessor_less.rb +0 -40
- data/test/test_contentprocessor_maruku.rb +0 -33
- data/test/test_contentprocessor_rdiscount.rb +0 -21
- data/test/test_contentprocessor_rdoc.rb +0 -22
- data/test/test_contentprocessor_redcloth.rb +0 -26
- data/test/test_contentprocessor_sass.rb +0 -28
- data/test/test_contentprocessor_scss.rb +0 -28
- data/test/test_contentprocessor_tags.rb +0 -122
- data/test/test_contentprocessor_tidy.rb +0 -34
- data/test/test_contentprocessor_xmllint.rb +0 -38
- data/test/test_context.rb +0 -81
- data/test/test_error.rb +0 -93
- data/test/test_loggable.rb +0 -32
- data/test/test_logger.rb +0 -94
- data/test/test_node.rb +0 -469
- data/test/test_output_filesystem.rb +0 -60
- data/test/test_path.rb +0 -241
- data/test/test_source_filesystem.rb +0 -76
- data/test/test_source_resource.rb +0 -28
- data/test/test_source_stacked.rb +0 -49
- data/test/test_sourcehandler_base.rb +0 -136
- data/test/test_sourcehandler_copy.rb +0 -47
- data/test/test_sourcehandler_directory.rb +0 -38
- data/test/test_sourcehandler_feed.rb +0 -88
- data/test/test_sourcehandler_fragment.rb +0 -70
- data/test/test_sourcehandler_main.rb +0 -39
- data/test/test_sourcehandler_memory.rb +0 -44
- data/test/test_sourcehandler_metainfo.rb +0 -127
- data/test/test_sourcehandler_page.rb +0 -73
- data/test/test_sourcehandler_sitemap.rb +0 -68
- data/test/test_sourcehandler_template.rb +0 -68
- data/test/test_sourcehandler_virtual.rb +0 -106
- data/test/test_tag_base.rb +0 -62
- data/test/test_tag_breadcrumbtrail.rb +0 -91
- data/test/test_tag_coderay.rb +0 -45
- data/test/test_tag_date.rb +0 -18
- data/test/test_tag_executecommand.rb +0 -41
- data/test/test_tag_includefile.rb +0 -50
- data/test/test_tag_langbar.rb +0 -71
- data/test/test_tag_link.rb +0 -70
- data/test/test_tag_menu.rb +0 -207
- data/test/test_tag_metainfo.rb +0 -26
- data/test/test_tag_relocatable.rb +0 -60
- data/test/test_tag_sitemap.rb +0 -47
- data/test/test_tag_tikz.rb +0 -69
- data/test/test_tree.rb +0 -70
- data/test/test_website.rb +0 -130
- data/test/test_websiteaccess.rb +0 -25
- data/test/test_websitemanager.rb +0 -65
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require 'webgen/cli/utils'
|
|
4
|
+
require 'webgen/cli/install_bundle_command'
|
|
5
|
+
require 'webgen/cli/list_bundle_command'
|
|
6
|
+
require 'webgen/cli/create_bundle_command'
|
|
7
|
+
|
|
8
|
+
module Webgen
|
|
9
|
+
module CLI
|
|
10
|
+
|
|
11
|
+
# The CLI command for bundle related operations.
|
|
12
|
+
class BundleCommand < CmdParse::Command
|
|
13
|
+
|
|
14
|
+
def initialize # :nodoc:
|
|
15
|
+
super('bundle', true, true, false)
|
|
16
|
+
self.short_desc = 'Work with extension bundles'
|
|
17
|
+
self.description = Webgen::CLI::Utils.format_command_desc(<<DESC)
|
|
18
|
+
Groups various commands together that are used for working with extension bundles. If
|
|
19
|
+
a sub-command is invoked in the context of a webgen website, information about the
|
|
20
|
+
website is also included.
|
|
21
|
+
DESC
|
|
22
|
+
add_command(ListBundleCommand.new, true)
|
|
23
|
+
add_command(InstallBundleCommand.new)
|
|
24
|
+
add_command(CreateBundleCommand.new)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require 'webgen/cli/utils'
|
|
4
|
+
require 'fileutils'
|
|
5
|
+
require 'erb'
|
|
6
|
+
|
|
7
|
+
module Webgen
|
|
8
|
+
module CLI
|
|
9
|
+
|
|
10
|
+
# The CLI command for creating a new extension bundle.
|
|
11
|
+
class CreateBundleCommand < CmdParse::Command
|
|
12
|
+
|
|
13
|
+
def initialize # :nodoc:
|
|
14
|
+
super('create', false, false, true)
|
|
15
|
+
self.short_desc = 'Create an extension bundle'
|
|
16
|
+
self.description = Utils.format_command_desc(<<DESC)
|
|
17
|
+
Creates a new extension bundle. This command can either create a local bundle in the
|
|
18
|
+
website's ext/ directory or a bundle that can be distributed via Rubygems. In the
|
|
19
|
+
latter case you can optionally specify the directory under which the bundle should
|
|
20
|
+
be created.
|
|
21
|
+
DESC
|
|
22
|
+
self.options = CmdParse::OptionParserWrapper.new do |opts|
|
|
23
|
+
opts.separator "Options:"
|
|
24
|
+
opts.on("-d", "--distribution-format",
|
|
25
|
+
*Utils.format_option_desc("Create the bundle in distribution format")) do
|
|
26
|
+
@type = :gem
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
@type = :local
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def usage # :nodoc:
|
|
33
|
+
"Usage: webgen [global options] bundle create [options] BUNDLE_NAME [DIRECTORY]"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def execute(args) # :nodoc:
|
|
37
|
+
bundle_name = args.shift
|
|
38
|
+
raise "The argument NAME is mandatory" if bundle_name.to_s.empty?
|
|
39
|
+
directory = args.shift || bundle_name
|
|
40
|
+
commandparser.website.execute_task(:create_bundle, bundle_name, @type, directory)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -1,72 +1,60 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
2
|
|
|
3
|
-
require 'webgen/cli'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
module
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
3
|
+
require 'webgen/cli/utils'
|
|
4
|
+
|
|
5
|
+
module Webgen
|
|
6
|
+
module CLI
|
|
7
|
+
|
|
8
|
+
# The CLI command for creating a webgen website.
|
|
9
|
+
class CreateCommand < CmdParse::Command
|
|
10
|
+
|
|
11
|
+
def initialize # :nodoc:
|
|
12
|
+
super('create', false)
|
|
13
|
+
self.short_desc = 'Create a basic webgen website'
|
|
14
|
+
self.description = Utils.format_command_desc(<<DESC)
|
|
15
|
+
Creates a webgen website at the specified directory. If the --template
|
|
16
|
+
option is not used, a basic website is created. Otherwise the template
|
|
17
|
+
defines the content of website.
|
|
18
|
+
|
|
19
|
+
Hint: If the global verbosity option is enabled, the created files are
|
|
20
|
+
displayed.
|
|
21
|
+
DESC
|
|
22
|
+
|
|
23
|
+
@template = nil
|
|
24
|
+
self.options = CmdParse::OptionParserWrapper.new do |opts|
|
|
25
|
+
opts.separator "Options:"
|
|
26
|
+
opts.on('-t', '--template TEMPLATE', String, "A website template (optional)") do |val|
|
|
27
|
+
@template = val
|
|
24
28
|
end
|
|
29
|
+
opts.separator ""
|
|
30
|
+
opts.separator "Arguments:"
|
|
31
|
+
opts.separator opts.summary_indent + "DIR: the directory in which the website should be created"
|
|
25
32
|
end
|
|
26
|
-
opts.separator ""
|
|
27
|
-
opts.separator "Arguments:"
|
|
28
|
-
opts.separator opts.summary_indent + "DIR: the directory in which the website should be created"
|
|
29
33
|
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def usage # :nodoc:
|
|
33
|
-
"Usage: #{commandparser.program_name} [global options] create [options] DIR"
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def show_help # :nodoc:
|
|
37
|
-
super
|
|
38
|
-
wm = Webgen::WebsiteManager.new(commandparser.directory)
|
|
39
34
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
def show_help #:nodoc:
|
|
36
|
+
super
|
|
37
|
+
templates = commandparser.website.ext.task.data(:create_website)[:templates].keys.sort
|
|
38
|
+
puts "Available templates:"
|
|
39
|
+
output = if templates.empty?
|
|
40
|
+
"No templates available"
|
|
41
|
+
else
|
|
42
|
+
templates.join(', ')
|
|
43
|
+
end
|
|
44
|
+
puts Utils.format(output, Utils::DEFAULT_WIDTH - 4, 4, true).join("\n")
|
|
45
|
+
end
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if @bundles
|
|
55
|
-
@bundles = ['default', 'style-andreas07'] if @bundles.empty?
|
|
56
|
-
@bundles.each {|name| paths += wm.apply_bundle(Utils.match_bundle_name(wm, name)) }
|
|
57
|
-
end
|
|
58
|
-
rescue
|
|
59
|
-
require 'fileutils'
|
|
60
|
-
FileUtils.rm_rf(args[0])
|
|
61
|
-
raise
|
|
62
|
-
end
|
|
63
|
-
if commandparser.verbosity == :verbose
|
|
64
|
-
puts "The following files were created in the directory #{args[0]}:"
|
|
65
|
-
puts paths.sort.join("\n")
|
|
66
|
-
end
|
|
47
|
+
def execute(args) # :nodoc:
|
|
48
|
+
raise OptionParser::MissingArgument.new('DIR') if args.length == 0
|
|
49
|
+
Webgen::Website.new(args[0], Webgen::CLI::Logger.new) do |website|
|
|
50
|
+
website.logger.verbose = commandparser.verbose
|
|
51
|
+
end.execute_task(:create_website, @template)
|
|
52
|
+
puts "Created a new webgen website in <#{args[0]}>" + (@template ? "using the '#{template}' template" : '')
|
|
53
|
+
rescue Webgen::Task::CreateWebsite::Error => e
|
|
54
|
+
puts "An error occured while creating the website: #{e.message}"
|
|
67
55
|
end
|
|
56
|
+
|
|
68
57
|
end
|
|
69
58
|
|
|
70
59
|
end
|
|
71
|
-
|
|
72
60
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require 'webgen/cli/utils'
|
|
4
|
+
|
|
5
|
+
module Webgen
|
|
6
|
+
module CLI
|
|
7
|
+
|
|
8
|
+
# The CLI command for generating a webgen website.
|
|
9
|
+
class GenerateCommand < CmdParse::Command
|
|
10
|
+
|
|
11
|
+
def initialize # :nodoc:
|
|
12
|
+
super('generate', false, false, false)
|
|
13
|
+
self.short_desc = 'Generate the webgen website'
|
|
14
|
+
self.description = Webgen::CLI::Utils.format_command_desc("This command is executed by default when " +
|
|
15
|
+
"no other command was specified.")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def execute(args) # :nodoc:
|
|
19
|
+
commandparser.website.execute_task(:generate_website)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require 'webgen/cli/utils'
|
|
4
|
+
require 'rubygems/dependency_installer'
|
|
5
|
+
|
|
6
|
+
module Webgen
|
|
7
|
+
module CLI
|
|
8
|
+
|
|
9
|
+
# The CLI command for installing extension bundles.
|
|
10
|
+
class InstallBundleCommand < CmdParse::Command
|
|
11
|
+
|
|
12
|
+
def initialize # :nodoc:
|
|
13
|
+
super('install', false, false, true)
|
|
14
|
+
self.short_desc = 'Install an extension bundle'
|
|
15
|
+
self.description = Utils.format_command_desc(<<DESC)
|
|
16
|
+
Installs an extension bundle via Rubygems. You can either provide the name
|
|
17
|
+
of a webgen extension bundle, the name of a Rubygem or a local file name.
|
|
18
|
+
DESC
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def execute(args) # :nodoc:
|
|
22
|
+
raise CmdParse::InvalidArgumentError.new("Bundle name needed but none given") if args.length == 0
|
|
23
|
+
name = args.first
|
|
24
|
+
name = "webgen-#{name}-bundle" unless name =~ /\.gem$/ || name =~ /webgen-.*-bundle/
|
|
25
|
+
|
|
26
|
+
inst = Gem::DependencyInstaller.new(:domain => :both, :force => false)
|
|
27
|
+
inst.install(name)
|
|
28
|
+
puts "Installed #{name}"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require 'webgen/cli/utils'
|
|
4
|
+
|
|
5
|
+
module Webgen
|
|
6
|
+
module CLI
|
|
7
|
+
|
|
8
|
+
# The CLI command for listing extension bundles.
|
|
9
|
+
class ListBundleCommand < CmdParse::Command
|
|
10
|
+
|
|
11
|
+
def initialize # :nodoc:
|
|
12
|
+
super('list', false, false, true)
|
|
13
|
+
self.short_desc = 'List extension bundles'
|
|
14
|
+
self.description = Utils.format_command_desc(<<DESC)
|
|
15
|
+
Lists all loaded, installed and available extension bundles.
|
|
16
|
+
|
|
17
|
+
Loaded bundles are already used by the website, installed ones are installed but
|
|
18
|
+
not used and available bundles can be installed if needed.
|
|
19
|
+
|
|
20
|
+
Hint: The global verbosity option enables additional output.
|
|
21
|
+
DESC
|
|
22
|
+
self.options = CmdParse::OptionParserWrapper.new do |opts|
|
|
23
|
+
opts.separator "Options:"
|
|
24
|
+
opts.on("-r", "--[no-]remote",
|
|
25
|
+
*Utils.format_option_desc("Use remote server for listing available bundles")) do |remote|
|
|
26
|
+
@remote = remote
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
@remote = false
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def execute(args) # :nodoc:
|
|
33
|
+
bundles = {}
|
|
34
|
+
commandparser.website.ext.bundles.each do |bundle, info_file|
|
|
35
|
+
bundles.update(bundle => (info_file ? YAML.load(File.read(info_file)) : {}))
|
|
36
|
+
end
|
|
37
|
+
bundles.each {|n,d| d[:state] = :loaded}
|
|
38
|
+
|
|
39
|
+
populate_hash = lambda do |file|
|
|
40
|
+
bundle_name = File.basename(File.dirname(file))
|
|
41
|
+
info_file = File.join(File.dirname(file), 'info.yaml')
|
|
42
|
+
bundles[bundle_name] ||= (File.file?(info_file) ? YAML.load(File.read(info_file)) : {})
|
|
43
|
+
bundles[bundle_name][:state] ||= :available
|
|
44
|
+
bundles[bundle_name]
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
$LOAD_PATH.each do |path|
|
|
48
|
+
Dir.glob(File.join(path, 'webgen/bundle', '*', 'init.rb')).each do |file|
|
|
49
|
+
populate_hash.call(file)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
Gem::Specification.map do |spec|
|
|
54
|
+
[spec.name, spec.matches_for_glob("webgen/bundle/*/init.rb")]
|
|
55
|
+
end.select do |name, files|
|
|
56
|
+
!files.empty?
|
|
57
|
+
end.each do |name, files|
|
|
58
|
+
files.each do |file|
|
|
59
|
+
hash = populate_hash.call(file)
|
|
60
|
+
hash[:gem] = name
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
if @remote
|
|
65
|
+
dep = Gem::Deprecate.skip_during { Gem::Dependency.new(/webgen-.*-bundle/, Gem::Requirement.default) }
|
|
66
|
+
Gem::SpecFetcher.fetcher.find_matching(dep).each do |spec, uri|
|
|
67
|
+
bundle_name = spec.first.sub(/webgen-(.*)-bundle/, '\1')
|
|
68
|
+
if !bundles.has_key?(bundle_name)
|
|
69
|
+
bundles[bundle_name] = {:state => :installable, :gem => spec.first}
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
bundles.sort do |a, b|
|
|
75
|
+
if a.last[:state] == b.last[:state]
|
|
76
|
+
a.first <=> b.first
|
|
77
|
+
elsif a.last[:state] == :loaded
|
|
78
|
+
-1
|
|
79
|
+
elsif b.last[:state] == :loaded
|
|
80
|
+
1
|
|
81
|
+
elsif a.last[:state] == :available
|
|
82
|
+
-1
|
|
83
|
+
else
|
|
84
|
+
1
|
|
85
|
+
end
|
|
86
|
+
end.each do |name, data|
|
|
87
|
+
format_bundle_info(name, data)
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def format_bundle_info(name, data)
|
|
92
|
+
puts(Utils.light(Utils.blue(name)))
|
|
93
|
+
puts(" State: #{data[:state]}")
|
|
94
|
+
puts(" Rubygem: #{data[:gem]}") if data[:gem]
|
|
95
|
+
if commandparser.verbose && data['author']
|
|
96
|
+
puts(" Author: #{data['author']}")
|
|
97
|
+
print(" Summary: ")
|
|
98
|
+
puts(Utils.format(data['summary'], 78, 12, false))
|
|
99
|
+
puts(" Version: #{data['version']}") if data['version']
|
|
100
|
+
end
|
|
101
|
+
puts
|
|
102
|
+
end
|
|
103
|
+
private :format_bundle_info
|
|
104
|
+
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require 'webgen/logger'
|
|
4
|
+
require 'webgen/cli/utils'
|
|
5
|
+
|
|
6
|
+
module Webgen
|
|
7
|
+
|
|
8
|
+
module CLI
|
|
9
|
+
|
|
10
|
+
# The logger class used by the command line interface.
|
|
11
|
+
class Logger < Webgen::Logger
|
|
12
|
+
|
|
13
|
+
attr_accessor :prefix
|
|
14
|
+
|
|
15
|
+
# Create a new Logger object for the command line interface.
|
|
16
|
+
def initialize(outdev = $stdout)
|
|
17
|
+
super(outdev)
|
|
18
|
+
@prefix = ''
|
|
19
|
+
outdev.sync = true if outdev.respond_to?(:sync=)
|
|
20
|
+
self.formatter = Proc.new do |severity, timestamp, progname, msg|
|
|
21
|
+
msg = msg.dup
|
|
22
|
+
msg.gsub!(/<.*?>/) {|m| Utils.bold(m)}
|
|
23
|
+
msg.gsub!(/\n/, "\n ")
|
|
24
|
+
case severity
|
|
25
|
+
when 'INFO'
|
|
26
|
+
msg.sub!(/^\s*\[(?:create|update)\]/) {|m| Utils.bold(Utils.green(m))}
|
|
27
|
+
"%s%-5s %s\n" % [@prefix, severity, msg]
|
|
28
|
+
when 'WARN'
|
|
29
|
+
"%s%s%-5s%s %s\n" % [@prefix, Utils.bold + Utils.yellow, severity, Utils.reset, msg]
|
|
30
|
+
when 'ERROR', 'FATAL'
|
|
31
|
+
"%s%s%-5s%s %s\n" % [@prefix, Utils.bold + Utils.red, severity, Utils.reset, msg]
|
|
32
|
+
when 'DEBUG'
|
|
33
|
+
"%s%-5s%s %s\n" % [@prefix, severity, progname ? " (#{progname})" : '', msg]
|
|
34
|
+
else
|
|
35
|
+
raise ArgumentError, 'Unsupported logger severity level'
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
self.level = ::Logger::INFO
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require 'webgen/cli/utils'
|
|
4
|
+
require 'webgen/cli/show_extensions_command'
|
|
5
|
+
require 'webgen/cli/show_config_command'
|
|
6
|
+
require 'webgen/cli/show_dependencies_command'
|
|
7
|
+
|
|
8
|
+
module Webgen
|
|
9
|
+
module CLI
|
|
10
|
+
|
|
11
|
+
# The CLI command for showing various information about webgen itself or a webgen website.
|
|
12
|
+
class ShowCommand < CmdParse::Command
|
|
13
|
+
|
|
14
|
+
def initialize # :nodoc:
|
|
15
|
+
super('show', true, true, false)
|
|
16
|
+
self.short_desc = 'Show various information about webgen or a website'
|
|
17
|
+
self.description = Webgen::CLI::Utils.format_command_desc(<<DESC)
|
|
18
|
+
Groups various commands together that are used for showing information about webgen,
|
|
19
|
+
like available extensions or configuration options. If a sub-command is invoked in the
|
|
20
|
+
context of a webgen website, information about the website is also included.
|
|
21
|
+
DESC
|
|
22
|
+
add_command(ShowConfigCommand.new)
|
|
23
|
+
add_command(ShowExtensionsCommand.new)
|
|
24
|
+
add_command(ShowDependenciesCommand.new)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|