trusty-cms 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +23 -0
- data/CHANGELOG.md +754 -0
- data/CONTRIBUTORS.md +263 -0
- data/Gemfile +40 -0
- data/Gemfile.lock +177 -0
- data/INSTALL.md +10 -0
- data/LICENSE.md +21 -0
- data/README.md +85 -0
- data/Rakefile +7 -0
- data/app/controllers/admin/configuration_controller.rb +50 -0
- data/app/controllers/admin/extensions_controller.rb +11 -0
- data/app/controllers/admin/layouts_controller.rb +8 -0
- data/app/controllers/admin/page_fields_controller.rb +9 -0
- data/app/controllers/admin/page_parts_controller.rb +9 -0
- data/app/controllers/admin/pages_controller.rb +89 -0
- data/app/controllers/admin/preferences_controller.rb +46 -0
- data/app/controllers/admin/references_controller.rb +7 -0
- data/app/controllers/admin/resource_controller.rb +245 -0
- data/app/controllers/admin/users_controller.rb +40 -0
- data/app/controllers/admin/welcome_controller.rb +48 -0
- data/app/controllers/application_controller.rb +114 -0
- data/app/controllers/site_controller.rb +97 -0
- data/app/helpers/admin/configuration_helper.rb +80 -0
- data/app/helpers/admin/export_helper.rb +2 -0
- data/app/helpers/admin/extensions_helper.rb +2 -0
- data/app/helpers/admin/layouts_helper.rb +21 -0
- data/app/helpers/admin/node_helper.rb +96 -0
- data/app/helpers/admin/pages_helper.rb +117 -0
- data/app/helpers/admin/preferences_helper.rb +3 -0
- data/app/helpers/admin/references_helper.rb +46 -0
- data/app/helpers/admin/regions_helper.rb +28 -0
- data/app/helpers/admin/resource_helper.rb +2 -0
- data/app/helpers/admin/users_helper.rb +8 -0
- data/app/helpers/admin/welcome_helper.rb +2 -0
- data/app/helpers/application_helper.rb +241 -0
- data/app/helpers/site_helper.rb +2 -0
- data/app/models/deprecated_tags.rb +42 -0
- data/app/models/file_not_found_page.rb +32 -0
- data/app/models/layout.rb +15 -0
- data/app/models/menu_renderer.rb +140 -0
- data/app/models/page.rb +377 -0
- data/app/models/page_context.rb +53 -0
- data/app/models/page_field.rb +3 -0
- data/app/models/page_part.rb +20 -0
- data/app/models/standard_tags.rb +1318 -0
- data/app/models/status.rb +41 -0
- data/app/models/text_filter.rb +36 -0
- data/app/models/trusty_cms/config.rb +313 -0
- data/app/models/trusty_cms/page_response_cache_director.rb +43 -0
- data/app/models/user.rb +96 -0
- data/app/models/user_action_observer.rb +25 -0
- data/app/views/admin/configuration/edit.html.haml +38 -0
- data/app/views/admin/configuration/show.html.haml +58 -0
- data/app/views/admin/extensions/index.html.haml +41 -0
- data/app/views/admin/layouts/_form.html.haml +39 -0
- data/app/views/admin/layouts/edit.html.haml +9 -0
- data/app/views/admin/layouts/index.html.haml +35 -0
- data/app/views/admin/layouts/new.html.haml +7 -0
- data/app/views/admin/layouts/remove.html.haml +16 -0
- data/app/views/admin/page_fields/_page_field.html.haml +12 -0
- data/app/views/admin/page_parts/_page_part.html.haml +18 -0
- data/app/views/admin/pages/_fields.html.haml +71 -0
- data/app/views/admin/pages/_meta_row.html.haml +8 -0
- data/app/views/admin/pages/_node.html.haml +26 -0
- data/app/views/admin/pages/_popups.html.haml +27 -0
- data/app/views/admin/pages/children.html.haml +2 -0
- data/app/views/admin/pages/edit.html.haml +12 -0
- data/app/views/admin/pages/index.html.haml +26 -0
- data/app/views/admin/pages/new.html.haml +10 -0
- data/app/views/admin/pages/remove.html.haml +18 -0
- data/app/views/admin/preferences/edit.html.haml +44 -0
- data/app/views/admin/references/_tag_reference.haml +3 -0
- data/app/views/admin/references/filters.haml +6 -0
- data/app/views/admin/references/tags.haml +30 -0
- data/app/views/admin/users/_avatar.html.haml +5 -0
- data/app/views/admin/users/_form.html.haml +53 -0
- data/app/views/admin/users/_password_fields.html.haml +18 -0
- data/app/views/admin/users/edit.html.haml +9 -0
- data/app/views/admin/users/index.html.haml +39 -0
- data/app/views/admin/users/new.html.haml +6 -0
- data/app/views/admin/users/remove.html.haml +16 -0
- data/app/views/admin/welcome/login.html.haml +23 -0
- data/app/views/layouts/application.html.haml +50 -0
- data/app/views/site/not_found.html.haml +3 -0
- data/bin/ci/before_script +15 -0
- data/bin/trusty_cms +53 -0
- data/config/application.rb +124 -0
- data/config/boot.rb +9 -0
- data/config/compass.config +15 -0
- data/config/database.db2.yml +20 -0
- data/config/database.mysql.yml +25 -0
- data/config/database.postgresql.yml +25 -0
- data/config/database.sqlite.yml +16 -0
- data/config/database.sqlserver.yml +20 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +19 -0
- data/config/environments/production.rb +27 -0
- data/config/environments/test.rb +35 -0
- data/config/initializers/active_record_extensions.rb +1 -0
- data/config/initializers/configuration_extensions.rb +0 -0
- data/config/initializers/haml.rb +2 -0
- data/config/initializers/object_extensions.rb +1 -0
- data/config/initializers/radiant_config.rb +16 -0
- data/config/initializers/rails_patch.rb +2 -0
- data/config/initializers/response_cache_timeout.rb +3 -0
- data/config/initializers/string_extensions.rb +1 -0
- data/config/initializers/symbol_extensions.rb +1 -0
- data/config/initializers/tmp.rb +2 -0
- data/config/locales/en.yml +230 -0
- data/config/locales/en_available_tags.yml +625 -0
- data/config/preinitializer.rb +18 -0
- data/config/routes.rb +30 -0
- data/db/migrate/001_create_radiant_tables.rb +75 -0
- data/db/migrate/002_insert_initial_data.rb +12 -0
- data/db/migrate/003_rename_behavior_column.rb +9 -0
- data/db/migrate/004_rename_filter_column.rb +11 -0
- data/db/migrate/005_add_virtual_column_to_page.rb +9 -0
- data/db/migrate/006_integer_columns_to_boolean.rb +36 -0
- data/db/migrate/007_remove_virtual_column_from_page.rb +9 -0
- data/db/migrate/008_add_virtual_column_to_page_again.rb +9 -0
- data/db/migrate/009_add_content_type_field_to_layout.rb +9 -0
- data/db/migrate/010_merge_behaviors_and_pages.rb +57 -0
- data/db/migrate/011_rename_type_column_on_page_to_class_name.rb +9 -0
- data/db/migrate/012_create_extension_meta.rb +13 -0
- data/db/migrate/013_add_notes_field_to_user.rb +9 -0
- data/db/migrate/014_rename_config_default_parts_key.rb +17 -0
- data/db/migrate/015_add_optimistic_locking.rb +15 -0
- data/db/migrate/016_add_sessions.rb +16 -0
- data/db/migrate/017_rename_created_by_updated_by_columns.rb +15 -0
- data/db/migrate/018_add_description_and_keywords_to_pages.rb +11 -0
- data/db/migrate/019_add_salt_to_users.rb +11 -0
- data/db/migrate/020_add_session_info_to_users.rb +11 -0
- data/db/migrate/021_remove_session_expire_from_users.rb +9 -0
- data/db/migrate/20081203140407_add_indexes.rb +19 -0
- data/db/migrate/20090226140109_add_user_language.rb +9 -0
- data/db/migrate/20090929164633_rename_developer_role_to_designer.rb +9 -0
- data/db/migrate/20091003095744_change_user_language_to_locale.rb +9 -0
- data/db/migrate/20100805154952_add_page_fields.rb +15 -0
- data/db/migrate/20100805155020_convert_page_metas.rb +24 -0
- data/db/migrate/20100810151922_add_field_name_index.rb +11 -0
- data/db/migrate/20110902203823_add_allowed_children_cache_to_pages.rb +13 -0
- data/db/migrate/20111016150725_extend_page_part_content_limit.rb +15 -0
- data/db/migrate/20120209231801_change_pages_allowed_children_cache_to_text.rb +11 -0
- data/db/schema.rb +128 -0
- data/lib/active_record_extensions/active_record_extensions.rb +27 -0
- data/lib/annotatable.rb +68 -0
- data/lib/configuration_extensions/configuration_extensions.rb +357 -0
- data/lib/generators/extension/USAGE +30 -0
- data/lib/generators/extension/extension_generator.rb +97 -0
- data/lib/generators/extension/templates/README.md +6 -0
- data/lib/generators/extension/templates/RSpecRakefile +109 -0
- data/lib/generators/extension/templates/Rakefile +25 -0
- data/lib/generators/extension/templates/cucumber.yml +1 -0
- data/lib/generators/extension/templates/cucumber_env.rb +11 -0
- data/lib/generators/extension/templates/cucumber_paths.rb +22 -0
- data/lib/generators/extension/templates/en.yml +3 -0
- data/lib/generators/extension/templates/extension.rb +21 -0
- data/lib/generators/extension/templates/functional_test.rb +15 -0
- data/lib/generators/extension/templates/gemspec.rb +29 -0
- data/lib/generators/extension/templates/lib.rb +8 -0
- data/lib/generators/extension/templates/migration.rb +9 -0
- data/lib/generators/extension/templates/radiant_config.rb +3 -0
- data/lib/generators/extension/templates/routes.rb +5 -0
- data/lib/generators/extension/templates/spec.opts +6 -0
- data/lib/generators/extension/templates/spec_helper.rb +42 -0
- data/lib/generators/extension/templates/tasks.rake +47 -0
- data/lib/generators/extension/templates/test_helper.rb +26 -0
- data/lib/generators/extension_controller/USAGE +36 -0
- data/lib/generators/extension_controller/extension_controller_generator.rb +84 -0
- data/lib/generators/extension_controller/templates/controller.rb +10 -0
- data/lib/generators/extension_controller/templates/controller_spec.rb +23 -0
- data/lib/generators/extension_controller/templates/functional_test.rb +11 -0
- data/lib/generators/extension_controller/templates/helper.rb +2 -0
- data/lib/generators/extension_controller/templates/helper_spec.rb +11 -0
- data/lib/generators/extension_controller/templates/helper_test.rb +4 -0
- data/lib/generators/extension_controller/templates/view.html.erb +2 -0
- data/lib/generators/extension_controller/templates/view_spec.rb +12 -0
- data/lib/generators/extension_mailer/USAGE +17 -0
- data/lib/generators/extension_mailer/extension_mailer_generator.rb +68 -0
- data/lib/generators/extension_mailer/templates/fixture.erb +3 -0
- data/lib/generators/extension_mailer/templates/mailer.rb +15 -0
- data/lib/generators/extension_mailer/templates/unit_test.rb +21 -0
- data/lib/generators/extension_mailer/templates/view.erb +3 -0
- data/lib/generators/extension_migration/USAGE +34 -0
- data/lib/generators/extension_migration/extension_migration_generator.rb +25 -0
- data/lib/generators/extension_migration/templates/migration.rb +11 -0
- data/lib/generators/extension_model/USAGE +35 -0
- data/lib/generators/extension_model/extension_model_generator.rb +68 -0
- data/lib/generators/extension_model/templates/fixtures.yml +19 -0
- data/lib/generators/extension_model/templates/migration.rb +16 -0
- data/lib/generators/extension_model/templates/model.rb +2 -0
- data/lib/generators/extension_model/templates/model_spec.rb +11 -0
- data/lib/generators/extension_model/templates/unit_test.rb +8 -0
- data/lib/generators/generator_base_extension.rb +16 -0
- data/lib/generators/instance/instance_generator.rb +148 -0
- data/lib/generators/instance/templates/databases/db2.yml +40 -0
- data/lib/generators/instance/templates/databases/mysql.yml +47 -0
- data/lib/generators/instance/templates/databases/postgresql.yml +44 -0
- data/lib/generators/instance/templates/databases/sqlite3.yml +16 -0
- data/lib/generators/instance/templates/databases/sqlserver.yml +21 -0
- data/lib/generators/instance/templates/instance_boot.rb +122 -0
- data/lib/generators/instance/templates/instance_config.ru +2 -0
- data/lib/generators/instance/templates/instance_environment.rb +83 -0
- data/lib/generators/instance/templates/instance_gemfile +81 -0
- data/lib/generators/instance/templates/instance_generate +6 -0
- data/lib/generators/instance/templates/instance_radiant_config.rb +16 -0
- data/lib/generators/instance/templates/instance_rakefile +3 -0
- data/lib/generators/instance/templates/instance_routes.rb +1 -0
- data/lib/generators/language_extension/USAGE +27 -0
- data/lib/generators/language_extension/language_extension_generator.rb +71 -0
- data/lib/generators/language_extension/templates/README +3 -0
- data/lib/generators/language_extension/templates/RSpecRakefile +123 -0
- data/lib/generators/language_extension/templates/Rakefile +25 -0
- data/lib/generators/language_extension/templates/available_tags.yml +553 -0
- data/lib/generators/language_extension/templates/cucumber.yml +1 -0
- data/lib/generators/language_extension/templates/cucumber_env.rb +16 -0
- data/lib/generators/language_extension/templates/cucumber_paths.rb +14 -0
- data/lib/generators/language_extension/templates/extension.rb +12 -0
- data/lib/generators/language_extension/templates/functional_test.rb +15 -0
- data/lib/generators/language_extension/templates/gemspec.rb +24 -0
- data/lib/generators/language_extension/templates/lang.yml +181 -0
- data/lib/generators/language_extension/templates/lib.rb +8 -0
- data/lib/generators/language_extension/templates/spec.opts +6 -0
- data/lib/generators/language_extension/templates/spec_helper.rb +36 -0
- data/lib/generators/language_extension/templates/tasks.rake +28 -0
- data/lib/generators/language_extension/templates/test_helper.rb +26 -0
- data/lib/inheritable_class_attributes.rb +65 -0
- data/lib/local_time.rb +6 -0
- data/lib/login_system.rb +132 -0
- data/lib/method_observer.rb +50 -0
- data/lib/object_extensions/object_extensions.rb +5 -0
- data/lib/simpleton.rb +21 -0
- data/lib/string_extensions/string_extensions.rb +25 -0
- data/lib/symbol_extensions/symbol_extensions.rb +5 -0
- data/lib/tasks/database.rake +85 -0
- data/lib/tasks/environments.rake +11 -0
- data/lib/tasks/extensions.rake +85 -0
- data/lib/tasks/framework.rake +255 -0
- data/lib/tasks/instance.rake +23 -0
- data/lib/tasks/prototype.rake +31 -0
- data/lib/tasks/radiant_config.rake +18 -0
- data/lib/tasks/release.rake +131 -0
- data/lib/tasks/translate.rake +59 -0
- data/lib/tasks/undefine.rake +28 -0
- data/lib/translation_support.rb +54 -0
- data/lib/trusty_cms/admin_ui/region_partials.rb +23 -0
- data/lib/trusty_cms/admin_ui/region_set.rb +35 -0
- data/lib/trusty_cms/admin_ui.rb +244 -0
- data/lib/trusty_cms/available_locales.rb +19 -0
- data/lib/trusty_cms/cache.rb +100 -0
- data/lib/trusty_cms/config/definition.rb +142 -0
- data/lib/trusty_cms/engine.rb +10 -0
- data/lib/trusty_cms/extension/script.rb +395 -0
- data/lib/trusty_cms/extension.rb +146 -0
- data/lib/trusty_cms/extension_loader.rb +130 -0
- data/lib/trusty_cms/extension_migrator.rb +98 -0
- data/lib/trusty_cms/extension_path.rb +200 -0
- data/lib/trusty_cms/initializer.rb +162 -0
- data/lib/trusty_cms/pagination/controller.rb +41 -0
- data/lib/trusty_cms/pagination/link_renderer.rb +34 -0
- data/lib/trusty_cms/resource_responses.rb +121 -0
- data/lib/trusty_cms/setup.rb +227 -0
- data/lib/trusty_cms/taggable.rb +138 -0
- data/lib/trusty_cms/task_support.rb +66 -0
- data/lib/trusty_cms.rb +19 -0
- data/log/.keep +0 -0
- data/public/.htaccess +40 -0
- data/public/404.html +8 -0
- data/public/500.html +8 -0
- data/public/dispatch.cgi +10 -0
- data/public/dispatch.fcgi +24 -0
- data/public/dispatch.rb +10 -0
- data/public/favicon.ico +0 -0
- data/public/images/admin/add_tab.png +0 -0
- data/public/images/admin/avatar_32x32.png +0 -0
- data/public/images/admin/avatar_64x64.png +0 -0
- data/public/images/admin/avatar_96x96.png +0 -0
- data/public/images/admin/brown_bottom_line.gif +0 -0
- data/public/images/admin/calendar_down.gif +0 -0
- data/public/images/admin/collapse.png +0 -0
- data/public/images/admin/draft_page.png +0 -0
- data/public/images/admin/expand.png +0 -0
- data/public/images/admin/image.png +0 -0
- data/public/images/admin/javascript.png +0 -0
- data/public/images/admin/layout.png +0 -0
- data/public/images/admin/metadata_toggle.png +0 -0
- data/public/images/admin/minus.png +0 -0
- data/public/images/admin/minus_disabled.png +0 -0
- data/public/images/admin/minus_grey.png +0 -0
- data/public/images/admin/navigation_secondary_separator.gif +0 -0
- data/public/images/admin/page.png +0 -0
- data/public/images/admin/plus.png +0 -0
- data/public/images/admin/plus_disabled.png +0 -0
- data/public/images/admin/plus_grey.png +0 -0
- data/public/images/admin/popup_border_background.png +0 -0
- data/public/images/admin/popup_border_bottom_left.png +0 -0
- data/public/images/admin/popup_border_bottom_right.png +0 -0
- data/public/images/admin/popup_border_top_left.png +0 -0
- data/public/images/admin/popup_border_top_right.png +0 -0
- data/public/images/admin/search.png +0 -0
- data/public/images/admin/single_form_shadow.png +0 -0
- data/public/images/admin/snippet.png +0 -0
- data/public/images/admin/spinner.gif +0 -0
- data/public/images/admin/status_background.png +0 -0
- data/public/images/admin/status_bottom_left.png +0 -0
- data/public/images/admin/status_bottom_right.png +0 -0
- data/public/images/admin/status_spinner.gif +0 -0
- data/public/images/admin/status_top_left.png +0 -0
- data/public/images/admin/status_top_right.png +0 -0
- data/public/images/admin/stylesheet.png +0 -0
- data/public/images/admin/tab_close.png +0 -0
- data/public/images/admin/upload.png +0 -0
- data/public/images/admin/virtual_page.png +0 -0
- data/public/images/radiant/radiant-badge-color.png +0 -0
- data/public/javascripts/admin/application.js +94 -0
- data/public/javascripts/admin/codearea.js +165 -0
- data/public/javascripts/admin/controls.js +965 -0
- data/public/javascripts/admin/cookie.js +80 -0
- data/public/javascripts/admin/dateinput.js +402 -0
- data/public/javascripts/admin/dragdrop.js +974 -0
- data/public/javascripts/admin/dropdown.js +216 -0
- data/public/javascripts/admin/effects.js +1122 -0
- data/public/javascripts/admin/lowpro.js +340 -0
- data/public/javascripts/admin/overrides.js +1 -0
- data/public/javascripts/admin/page_preview.js +41 -0
- data/public/javascripts/admin/pagefield.js +54 -0
- data/public/javascripts/admin/pagestatus.js +17 -0
- data/public/javascripts/admin/popup.js +339 -0
- data/public/javascripts/admin/prototype.js +4874 -0
- data/public/javascripts/admin/ruledtable.js +13 -0
- data/public/javascripts/admin/shortcuts.js +33 -0
- data/public/javascripts/admin/sitemap.js +149 -0
- data/public/javascripts/admin/status.js +233 -0
- data/public/javascripts/admin/tabcontrol.js +123 -0
- data/public/javascripts/admin/toggle.js +430 -0
- data/public/javascripts/admin/utility.js +53 -0
- data/public/javascripts/admin/validationerror.js +18 -0
- data/public/loading-iframe.html +11 -0
- data/public/robots.txt +1 -0
- data/public/stylesheets/sass/admin/_base.sass +18 -0
- data/public/stylesheets/sass/admin/main.sass +27 -0
- data/public/stylesheets/sass/admin/modules/_boxes.sass +6 -0
- data/public/stylesheets/sass/admin/modules/_gradients.sass +4 -0
- data/public/stylesheets/sass/admin/modules/_links.sass +18 -0
- data/public/stylesheets/sass/admin/overrides.sass +2 -0
- data/public/stylesheets/sass/admin/partials/_actions.sass +96 -0
- data/public/stylesheets/sass/admin/partials/_avatars.sass +10 -0
- data/public/stylesheets/sass/admin/partials/_content.sass +58 -0
- data/public/stylesheets/sass/admin/partials/_dateinput.sass +62 -0
- data/public/stylesheets/sass/admin/partials/_deprecated.sass +55 -0
- data/public/stylesheets/sass/admin/partials/_dropdown.sass +28 -0
- data/public/stylesheets/sass/admin/partials/_footer.sass +12 -0
- data/public/stylesheets/sass/admin/partials/_forms.sass +322 -0
- data/public/stylesheets/sass/admin/partials/_header.sass +114 -0
- data/public/stylesheets/sass/admin/partials/_index.sass +147 -0
- data/public/stylesheets/sass/admin/partials/_layout.sass +10 -0
- data/public/stylesheets/sass/admin/partials/_messages.sass +10 -0
- data/public/stylesheets/sass/admin/partials/_popup.sass +213 -0
- data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +72 -0
- data/public/stylesheets/sass/admin/partials/_toolbar.sass +31 -0
- data/public/stylesheets/sass/admin/partials/_typography.sass +60 -0
- data/public/stylesheets/sass/admin/partials/_validations.sass +19 -0
- data/rails/init.rb +1 -0
- data/script/about +4 -0
- data/script/breakpointer +3 -0
- data/script/console +3 -0
- data/script/dbconsole +3 -0
- data/script/destroy +3 -0
- data/script/extension +5 -0
- data/script/generate +3 -0
- data/script/performance/benchmarker +3 -0
- data/script/performance/profiler +3 -0
- data/script/performance/request +3 -0
- data/script/plugin +3 -0
- data/script/process/inspector +3 -0
- data/script/process/reaper +3 -0
- data/script/process/spawner +3 -0
- data/script/process/spinner +3 -0
- data/script/rails +6 -0
- data/script/runner +3 -0
- data/script/server +3 -0
- data/script/version +5 -0
- data/spec/ci/database.mysql.yml +4 -0
- data/spec/ci/database.postgresql.yml +4 -0
- data/spec/ci/database.sqlite.yml +3 -0
- data/trusty_cms.gemspec +50 -0
- metadata +781 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
namespace :db do
|
2
|
+
desc "Migrate schema to version 0 and back up again. WARNING: Destroys all data in tables!!"
|
3
|
+
task :remigrate => :environment do
|
4
|
+
require 'highline/import'
|
5
|
+
if ENV['OVERWRITE'].to_s.downcase == 'true' or agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [yn] ")
|
6
|
+
|
7
|
+
# Migrate downward
|
8
|
+
ActiveRecord::Migrator.migrate("#{TRUSTY_CMS_ROOT}/db/migrate/", 0)
|
9
|
+
|
10
|
+
# Migrate upward
|
11
|
+
Rake::Task["db:migrate"].invoke
|
12
|
+
|
13
|
+
# Dump the schema
|
14
|
+
Rake::Task["db:schema:dump"].invoke
|
15
|
+
else
|
16
|
+
say "Task cancelled."
|
17
|
+
exit
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
task :initialize => :environment do
|
22
|
+
require 'highline/import'
|
23
|
+
if ENV['OVERWRITE'].to_s.downcase == 'true' or agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [yn] ")
|
24
|
+
|
25
|
+
# We need to erase and remove all existing radiant tables, but we don't want to
|
26
|
+
# assume that the administrator has access to drop and create the database.
|
27
|
+
# Ideally we should also allow for the presence of non-radiant tables, though
|
28
|
+
# that's not a setup anyone would recommend.
|
29
|
+
#
|
30
|
+
ActiveRecord::Base.connection.tables.each do |table|
|
31
|
+
ActiveRecord::Migration.drop_table table
|
32
|
+
end
|
33
|
+
Rake::Task["db:migrate"].invoke
|
34
|
+
else
|
35
|
+
say "Task cancelled."
|
36
|
+
exit
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
desc "Bootstrap your database for TrustyCms."
|
41
|
+
task :bootstrap => :initialize do
|
42
|
+
require 'trusty_cms/setup'
|
43
|
+
TrustyCms::Setup.bootstrap(
|
44
|
+
:admin_name => ENV['ADMIN_NAME'],
|
45
|
+
:admin_username => ENV['ADMIN_USERNAME'],
|
46
|
+
:admin_password => ENV['ADMIN_PASSWORD'],
|
47
|
+
:database_template => ENV['DATABASE_TEMPLATE']
|
48
|
+
)
|
49
|
+
Rake::Task['db:migrate:extensions'].invoke
|
50
|
+
Rake::Task['radiant:extensions:update_all'].invoke
|
51
|
+
puts %{
|
52
|
+
Your TrustyCms application is ready to use. Run `script/server -e production` to
|
53
|
+
start the server. Your site will then be running at http://localhost:3000
|
54
|
+
|
55
|
+
You can access the administrative interface at http://localhost:3000/admin
|
56
|
+
|
57
|
+
You may also need to set permissions on the public and cache directories so that
|
58
|
+
your Web server can access those directories with the user that it runs under.
|
59
|
+
|
60
|
+
To add more extensions just add them to your Gemfile and run `bundle install`.
|
61
|
+
If an extension is not available as a gem use `script/extension install name`.
|
62
|
+
|
63
|
+
Visit http://ext.radiantcms.org to find more extensions.
|
64
|
+
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
68
|
+
desc "Migrate the database through all available migration scripts (looks for db/migrate/* in radiant, in extensions and in your site) and update db/schema.rb by invoking db:schema:dump. Turn off output with VERBOSE=false."
|
69
|
+
task :migrate => :environment do
|
70
|
+
Rake::Task['db:migrate:radiant'].invoke
|
71
|
+
Rake::Task['db:migrate:extensions'].invoke
|
72
|
+
ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
|
73
|
+
ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
|
74
|
+
Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
|
75
|
+
end
|
76
|
+
|
77
|
+
namespace :migrate do
|
78
|
+
desc "Migrates the database through steps defined in the core radiant distribution. Usual db:migrate options can apply."
|
79
|
+
task :radiant => :environment do
|
80
|
+
ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
|
81
|
+
ActiveRecord::Migrator.migrate(File.join(TrustyCms.root, 'db', 'migrate'), ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
|
82
|
+
Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
desc "Set the environment variable Rails.env='development'."
|
2
|
+
task :development do
|
3
|
+
ENV['RAILS_ENV'] = Rails.env = 'development'
|
4
|
+
Rake::Task[:environment].invoke
|
5
|
+
end
|
6
|
+
|
7
|
+
desc "Set the environment variable Rails.env='production'."
|
8
|
+
task :production do
|
9
|
+
ENV['RAILS_ENV'] = Rails.env = 'production'
|
10
|
+
Rake::Task[:environment].invoke
|
11
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'rake/testtask'
|
2
|
+
|
3
|
+
namespace :db do
|
4
|
+
namespace :migrate do
|
5
|
+
desc "Run all TrustyCms extension migrations"
|
6
|
+
task :extensions => :environment do
|
7
|
+
require 'trusty_cms/extension_migrator'
|
8
|
+
TrustyCms::ExtensionMigrator.migrate_extensions
|
9
|
+
Rake::Task['db:schema:dump'].invoke
|
10
|
+
end
|
11
|
+
end
|
12
|
+
namespace :remigrate do
|
13
|
+
desc "Migrate down and back up all TrustyCms extension migrations"
|
14
|
+
task :extensions => :environment do
|
15
|
+
require 'highline/import'
|
16
|
+
if agree("This task will destroy any data stored by extensions in the database. Are you sure you want to \ncontinue? [yn] ")
|
17
|
+
require 'trusty_cms/extension_migrator'
|
18
|
+
TrustyCms::Extension.descendants.each {|ext| ext.migrator.migrate(0) }
|
19
|
+
Rake::Task['db:migrate:extensions'].invoke
|
20
|
+
Rake::Task['db:schema:dump'].invoke
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
namespace :test do
|
27
|
+
desc "Runs tests on all available TrustyCms extensions, pass EXT=extension_name to test a single extension"
|
28
|
+
task :extensions => "db:test:prepare" do
|
29
|
+
extensions = TrustyCms.configuration.enabled_extensions
|
30
|
+
if ENV["EXT"]
|
31
|
+
extensions = extensions & [ENV["EXT"].to_sym]
|
32
|
+
if extensions.empty?
|
33
|
+
puts "Sorry, that extension is not installed."
|
34
|
+
end
|
35
|
+
end
|
36
|
+
extensions.each do |extension|
|
37
|
+
directory = TrustyCms::ExtensionPath.for(extension)
|
38
|
+
if File.directory?(File.join(directory, 'test'))
|
39
|
+
chdir directory do
|
40
|
+
if RUBY_PLATFORM =~ /win32/
|
41
|
+
system "rake.cmd test RADIANT_ENV_FILE=#{Rails.root}/config/environment"
|
42
|
+
else
|
43
|
+
system "rake test RADIANT_ENV_FILE=#{Rails.root}/config/environment"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
namespace :spec do
|
52
|
+
desc "Runs specs on all available TrustyCms extensions, pass EXT=extension_name to test a single extension"
|
53
|
+
task :extensions => "db:test:prepare" do
|
54
|
+
extensions = TrustyCms.configuration.enabled_extensions
|
55
|
+
if ENV["EXT"]
|
56
|
+
extensions = extensions & [ENV["EXT"].to_sym]
|
57
|
+
if extensions.empty?
|
58
|
+
puts "Sorry, that extension is not installed."
|
59
|
+
end
|
60
|
+
end
|
61
|
+
extensions.each do |extension|
|
62
|
+
directory = TrustyCms::ExtensionPath.for(extension)
|
63
|
+
if File.directory?(File.join(directory, 'spec'))
|
64
|
+
puts %{\nRunning specs on #{extension} extension from #{directory}/spec\n}
|
65
|
+
chdir directory do
|
66
|
+
if RUBY_PLATFORM =~ /win32/
|
67
|
+
system "rake.cmd spec RADIANT_ENV_FILE=#{Rails.root}/config/environment"
|
68
|
+
else
|
69
|
+
system "rake spec RADIANT_ENV_FILE=#{Rails.root}/config/environment"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
namespace :radiant do
|
78
|
+
namespace :extensions do
|
79
|
+
desc "Runs update asset task for all extensions"
|
80
|
+
task :update_all => [:environment] do
|
81
|
+
extension_update_tasks = TrustyCms.configuration.enabled_extensions.map { |n| "radiant:extensions:#{n}:update" }.select { |t| Rake::Task.task_defined?(t) }
|
82
|
+
extension_update_tasks.each {|t| Rake::Task[t].invoke }
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,255 @@
|
|
1
|
+
# Only define freeze and unfreeze tasks in instance mode
|
2
|
+
unless File.directory? "#{Rails.root}/app"
|
3
|
+
namespace :radiant do
|
4
|
+
namespace :freeze do
|
5
|
+
desc "Lock this application to the current gems (by unpacking them into vendor/radiant)"
|
6
|
+
task :gems do
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubygems/gem_runner'
|
9
|
+
|
10
|
+
radiant = (version = ENV['VERSION']) ?
|
11
|
+
Gem.cache.search('trusty-cms', "= #{version}").first :
|
12
|
+
Gem.cache.search('trusty-cms').sort_by { |g| g.version }.last
|
13
|
+
|
14
|
+
version ||= radiant.version
|
15
|
+
|
16
|
+
unless radiant
|
17
|
+
puts "No radiant gem #{version} is installed. Do 'gem list radiant' to see what you have available."
|
18
|
+
exit
|
19
|
+
end
|
20
|
+
|
21
|
+
puts "Freezing to the gems for TrustyCms #{radiant.version}"
|
22
|
+
rm_rf "vendor/radiant"
|
23
|
+
|
24
|
+
chdir("vendor") do
|
25
|
+
Gem::GemRunner.new.run(["unpack", "radiant", "--version", "=#{version}"])
|
26
|
+
FileUtils.mv(Dir.glob("radiant*").first, "radiant")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
desc "Lock to latest Edge TrustyCms or a specific revision with REVISION=X (ex: REVISION=245484e), a tag with TAG=Y (ex: TAG=0.6.6), or a branch with BRANCH=Z (ex: BRANCH=mental)"
|
31
|
+
task :edge do
|
32
|
+
$verbose = false
|
33
|
+
unless system "git --version"
|
34
|
+
$stderr.puts "ERROR: Must have git available in the PATH to lock this application to Edge TrustyCms"
|
35
|
+
exit 1
|
36
|
+
end
|
37
|
+
|
38
|
+
radiant_git = "git://github.com/pgharts/trusty-cms.git"
|
39
|
+
|
40
|
+
if File.exist?("vendor/trusty_cms/.git/HEAD")
|
41
|
+
cd("vendor/radiant") { system "git checkout master"; system "git pull origin master"}
|
42
|
+
else
|
43
|
+
system "git clone #{radiant_git} vendor/radiant"
|
44
|
+
end
|
45
|
+
|
46
|
+
case
|
47
|
+
when ENV['TAG']
|
48
|
+
cd("vendor/radiant") { system "git checkout -b v#{ENV['TAG']} #{ENV['TAG']}"}
|
49
|
+
when ENV['BRANCH']
|
50
|
+
cd("vendor/radiant") { system "git checkout --track -b #{ENV['BRANCH']} origin/#{ENV['BRANCH']}"}
|
51
|
+
when ENV['REVISION']
|
52
|
+
cd("vendor/radiant") { system "git checkout -b REV_#{ENV['REVISION']} #{ENV['REVISION']}"}
|
53
|
+
end
|
54
|
+
|
55
|
+
cd("vendor/radiant") { system "git submodule update --init"}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "Unlock this application from freeze of gems or edge and return to a fluid use of system gems"
|
60
|
+
task :unfreeze do
|
61
|
+
rm_rf "vendor/radiant"
|
62
|
+
end
|
63
|
+
|
64
|
+
desc "Update configs, scripts, html, images, sass, stylesheets and javascripts from TrustyCms."
|
65
|
+
task :update do
|
66
|
+
tasks = %w{scripts javascripts configs static_html images sass stylesheets cached_assets bundle}
|
67
|
+
tasks = tasks & ENV['ONLY'].split(',') if ENV['ONLY']
|
68
|
+
tasks = tasks - ENV['EXCEPT'].split(',') if ENV['EXCEPT']
|
69
|
+
|
70
|
+
tasks.each do |task|
|
71
|
+
puts "* Updating #{task}"
|
72
|
+
Rake::Task["radiant:update:#{task}"].invoke
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
namespace :update do
|
77
|
+
desc "Add new scripts to the instance script/ directory"
|
78
|
+
task :scripts do
|
79
|
+
local_base = "script"
|
80
|
+
edge_base = "#{File.dirname(__FILE__)}/../../script"
|
81
|
+
|
82
|
+
local = Dir["#{local_base}/**/*"].reject { |path| File.directory?(path) }
|
83
|
+
edge = Dir["#{edge_base}/**/*"].reject { |path| File.directory?(path) }
|
84
|
+
edge = edge.reject { |f| f =~ /(generate|plugin|destroy)$/ }
|
85
|
+
|
86
|
+
edge.each do |script|
|
87
|
+
base_name = script[(edge_base.length+1)..-1]
|
88
|
+
next if local.detect { |path| base_name == path[(local_base.length+1)..-1] }
|
89
|
+
if !File.directory?("#{local_base}/#{File.dirname(base_name)}")
|
90
|
+
mkdir_p "#{local_base}/#{File.dirname(base_name)}"
|
91
|
+
end
|
92
|
+
install script, "#{local_base}/#{base_name}", :mode => 0755
|
93
|
+
end
|
94
|
+
install "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_generate", "#{local_base}/generate", :mode => 0755
|
95
|
+
end
|
96
|
+
|
97
|
+
desc "Update your javascripts from your current radiant install"
|
98
|
+
task :javascripts do
|
99
|
+
FileUtils.mkdir_p("#{Rails.root}/public/javascripts/admin/")
|
100
|
+
copy_javascripts = proc do |project_dir, scripts|
|
101
|
+
scripts.reject!{|s| File.basename(s) == 'overrides.js'} if File.exists?(project_dir + 'overrides.js')
|
102
|
+
FileUtils.cp(scripts, project_dir)
|
103
|
+
end
|
104
|
+
copy_javascripts[Rails.root + '/public/javascripts/', Dir["#{File.dirname(__FILE__)}/../../public/javascripts/*.js"]]
|
105
|
+
copy_javascripts[Rails.root + '/public/javascripts/admin/', Dir["#{File.dirname(__FILE__)}/../../public/javascripts/admin/*.js"]]
|
106
|
+
end
|
107
|
+
|
108
|
+
desc "Update the cached assets for the admin UI"
|
109
|
+
task :cached_assets do
|
110
|
+
TrustyCms::TaskSupport.cache_admin_js
|
111
|
+
end
|
112
|
+
|
113
|
+
desc "Update Gemfile from your current radiant install, backing up if required."
|
114
|
+
task :bundle do
|
115
|
+
require 'erb'
|
116
|
+
file = "#{Rails.root}/Gemfile"
|
117
|
+
tmpfile = "#{Rails.root}/Gemfile.tmp"
|
118
|
+
genfile = "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_gemfile"
|
119
|
+
backfile = "#{Rails.root}/Gemfile.bak"
|
120
|
+
|
121
|
+
db_gems = {
|
122
|
+
'sqlite3' => 'sqlite3',
|
123
|
+
'mysql' => 'mysql',
|
124
|
+
'pg' => 'postgresql',
|
125
|
+
'db2' => 'db2',
|
126
|
+
'activerecord-sqlserver-adapter' => 'sqlserver'
|
127
|
+
}
|
128
|
+
active_db_gem = db_gems.keys.find { |g| Gem.loaded_specs[g] } || 'sqlite3'
|
129
|
+
|
130
|
+
File.open(tmpfile, 'w') do |f|
|
131
|
+
radiant_version = TrustyCms::Version.to_s
|
132
|
+
db = db_gems[active_db_gem]
|
133
|
+
f.write ERB.new(File.read(genfile)).result(binding)
|
134
|
+
end
|
135
|
+
|
136
|
+
unless File.exist?(file) && FileUtils.compare_file(file, tmpfile)
|
137
|
+
warning = ""
|
138
|
+
if File.exist?(file)
|
139
|
+
FileUtils.cp(file, backfile)
|
140
|
+
warning << "** WARNING **
|
141
|
+
Your old Gemfile has been saved as Gemfile.bak. If you had radiant extensions or other gems in that file, please copy those lines to the new file. After checking the Gemfile, please run `bundle install` to update your application."
|
142
|
+
else
|
143
|
+
warning << "** WARNING **
|
144
|
+
A Gemfile has been created in your application directory. If you have config.gem entries in your old environment.rb (now .bak), please move them to the Gemfile. When you're happy with it, run `bundle install` to install the gems."
|
145
|
+
end
|
146
|
+
FileUtils.cp(tmpfile, file)
|
147
|
+
end
|
148
|
+
FileUtils.rm(tmpfile)
|
149
|
+
puts warning
|
150
|
+
end
|
151
|
+
|
152
|
+
desc "Update configuration files from your current radiant install"
|
153
|
+
task :configs do
|
154
|
+
require 'erb'
|
155
|
+
instances = {
|
156
|
+
:env => "#{Rails.root}/config/environment.rb",
|
157
|
+
:development => "#{Rails.root}/config/environments/development.rb",
|
158
|
+
:test => "#{Rails.root}/config/environments/test.rb",
|
159
|
+
:cucumber => "#{Rails.root}/config/environments/cucumber.rb",
|
160
|
+
:production => "#{Rails.root}/config/environments/production.rb"
|
161
|
+
}
|
162
|
+
tmps = {
|
163
|
+
:env => "#{Rails.root}/config/environment.tmp",
|
164
|
+
:development => "#{Rails.root}/config/environments/development.tmp",
|
165
|
+
:test => "#{Rails.root}/config/environments/test.tmp",
|
166
|
+
:cucumber => "#{Rails.root}/config/environments/cucumber.rb",
|
167
|
+
:production => "#{Rails.root}/config/environments/production.tmp"
|
168
|
+
}
|
169
|
+
gens = {
|
170
|
+
:env => "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_environment.rb",
|
171
|
+
:development => "#{File.dirname(__FILE__)}/../../config/environments/development.rb",
|
172
|
+
:test => "#{File.dirname(__FILE__)}/../../config/environments/test.rb",
|
173
|
+
:cucumber => "#{File.dirname(__FILE__)}/../../config/environments/cucumber.rb",
|
174
|
+
:production => "#{File.dirname(__FILE__)}/../../config/environments/production.rb"
|
175
|
+
}
|
176
|
+
backups = {
|
177
|
+
:env => "#{Rails.root}/config/environment.bak",
|
178
|
+
:development => "#{Rails.root}/config/environments/development.bak",
|
179
|
+
:test => "#{Rails.root}/config/environments/test.bak",
|
180
|
+
:cucumber => "#{Rails.root}/config/environments/cucumber.bak",
|
181
|
+
:production => "#{Rails.root}/config/environments/production.bak"
|
182
|
+
}
|
183
|
+
|
184
|
+
FileUtils.cp("#{File.dirname(__FILE__)}/../generators/instance/templates/instance_boot.rb", Rails.root + '/config/boot.rb')
|
185
|
+
FileUtils.cp("#{File.dirname(__FILE__)}/../../config/preinitializer.rb", Rails.root + '/config/preinitializer.rb')
|
186
|
+
warning = ""
|
187
|
+
[:env, :development, :test, :cucumber, :production].each do |env_file|
|
188
|
+
File.open(tmps[env_file], 'w') do |f|
|
189
|
+
app_name = File.basename(File.expand_path(Rails.root))
|
190
|
+
radiant_version = TrustyCms::Version.to_s
|
191
|
+
f.write ERB.new(File.read(gens[env_file])).result(binding)
|
192
|
+
end
|
193
|
+
unless File.exist?(instances[env_file]) && FileUtils.compare_file(instances[env_file], tmps[env_file])
|
194
|
+
FileUtils.cp(instances[env_file], backups[env_file]) if File.exist?(instances[env_file])
|
195
|
+
FileUtils.cp(tmps[env_file], instances[env_file])
|
196
|
+
warning << "
|
197
|
+
- #{instances[env_file].sub(/^#{Rails.root}/, '')}"
|
198
|
+
end
|
199
|
+
FileUtils.rm(tmps[env_file])
|
200
|
+
end
|
201
|
+
unless warning.blank?
|
202
|
+
puts "** WARNING **
|
203
|
+
The following files have been changed in TrustyCms. Your originals have
|
204
|
+
been backed up with .bak extensions. Please copy your customizations to
|
205
|
+
the new files: #{warning}"
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
desc "Update static HTML files from your current radiant install"
|
210
|
+
task :static_html do
|
211
|
+
project_dir = Rails.root + "/public/"
|
212
|
+
html_files = Dir["#{File.dirname(__FILE__)}/../../public/*.html"].delete_if { |f| f =~ /404.html|500.html/ }
|
213
|
+
FileUtils.cp(html_files, project_dir)
|
214
|
+
end
|
215
|
+
|
216
|
+
desc "Update admin and radiant images from your current radiant install"
|
217
|
+
task :images do
|
218
|
+
%w{admin radiant}.each do |d|
|
219
|
+
project_dir = Rails.root + "/public/images/#{d}/"
|
220
|
+
FileUtils.mkdir_p(project_dir)
|
221
|
+
images = Dir["#{File.dirname(__FILE__)}/../../public/images/#{d}/*"]
|
222
|
+
FileUtils.cp_r(images, project_dir)
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
desc "Update admin stylesheets from your current radiant install"
|
227
|
+
task :stylesheets do
|
228
|
+
project_dir = Rails.root + '/public/stylesheets/admin/'
|
229
|
+
|
230
|
+
copy_stylesheets = proc do |project_dir, styles|
|
231
|
+
styles.reject!{|s| File.basename(s) == 'overrides.css'} if File.exists?(project_dir + 'overrides.css')
|
232
|
+
FileUtils.cp(styles, project_dir)
|
233
|
+
end
|
234
|
+
copy_stylesheets[Rails.root + '/public/stylesheets/admin/',Dir["#{File.dirname(__FILE__)}/../../public/stylesheets/admin/*.css"]]
|
235
|
+
end
|
236
|
+
|
237
|
+
desc "Update admin sass files from your current radiant install"
|
238
|
+
task :sass do
|
239
|
+
copy_sass = proc do |project_dir, sass_files|
|
240
|
+
sass_files.reject!{|s| File.basename(s) == 'overrides.sass'} if File.exists?(project_dir + 'overrides.sass') || File.exists?(project_dir + '../overrides.css')
|
241
|
+
sass_files.reject!{|s| File.directory?(s) }
|
242
|
+
FileUtils.mkpath(project_dir)
|
243
|
+
FileUtils.cp(sass_files, project_dir)
|
244
|
+
end
|
245
|
+
sass_dir = "#{TRUSTY_CMS_ROOT}/public/stylesheets/sass/admin"
|
246
|
+
copy_sass[Rails.root + '/public/stylesheets/sass/admin/', Dir["#{sass_dir}/*"]]
|
247
|
+
Dir["#{sass_dir}/*"].each do |d|
|
248
|
+
if File.directory?(d)
|
249
|
+
copy_sass[Rails.root + "/public/stylesheets/sass/admin/#{File.basename(d)}/", Dir["#{d}/*"]]
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
end
|
254
|
+
end
|
255
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# # Redefined standard Rails tasks only in instance mode
|
2
|
+
# unless TrustyCms.app?
|
3
|
+
# require 'rake/testtask'
|
4
|
+
#
|
5
|
+
# ENV['RADIANT_ENV_FILE'] = File.join(Rails.root, 'config', 'environment')
|
6
|
+
#
|
7
|
+
# [Dir["#{Rails.Root}/vendor/rails/railties/lib/tasks/*.rake"], Dir["#{Rails.root}/vendor/plugins/rspec_on_rails/tasks/*.rake"]].flatten.each do |rake|
|
8
|
+
# lines = IO.readlines(rake)
|
9
|
+
# lines.map! do |line|
|
10
|
+
# line.gsub!('Rails.root', 'TRUSTY_CMS_ROOT') unless rake =~ /(misc|rspec|databases)\.rake$/
|
11
|
+
# case rake
|
12
|
+
# when /testing\.rake$/
|
13
|
+
# line.gsub!(/t.libs << (["'])/, 't.libs << \1#{TRUSTY_CMS_ROOT}/')
|
14
|
+
# line.gsub!(/t\.pattern = (["'])/, 't.pattern = \1#{TRUSTY_CMS_ROOT}/')
|
15
|
+
# when /databases\.rake$/
|
16
|
+
# line.gsub!(/(migrate|rollback)\((["'])/, '\1(\2#{TRUSTY_CMS_ROOT}/')
|
17
|
+
# line.gsub!(/(run|new)\((:up|:down), (["'])db/, '\1(\2, \3#{TRUSTY_CMS_ROOT}/db')
|
18
|
+
# end
|
19
|
+
# line
|
20
|
+
# end
|
21
|
+
# eval(lines.join("\n"), binding, rake)
|
22
|
+
# end
|
23
|
+
# end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
namespace :radiant do
|
2
|
+
namespace :import do
|
3
|
+
namespace :prototype do
|
4
|
+
|
5
|
+
desc "Import images, javascripts, and styles from prototype"
|
6
|
+
task :assets => [:images, :javascripts, :stylesheets]
|
7
|
+
|
8
|
+
desc "Import images from prototype"
|
9
|
+
task :images do
|
10
|
+
FileUtils.rm_r "public/images/admin"
|
11
|
+
FileUtils.mkpath "public/images/admin"
|
12
|
+
FileUtils.cp_r "../prototype/public/images/admin", "public/images"
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "Import javascripts from prototype"
|
16
|
+
task :javascripts do
|
17
|
+
FileUtils.rm_r "public/javascripts/admin"
|
18
|
+
FileUtils.mkpath "public/javascripts/admin"
|
19
|
+
FileUtils.cp_r "../prototype/public/javascripts/admin", "public/javascripts"
|
20
|
+
end
|
21
|
+
|
22
|
+
desc "Import stylesheets from prototype"
|
23
|
+
task :stylesheets do
|
24
|
+
FileUtils.rm_r "public/stylesheets/sass/admin"
|
25
|
+
FileUtils.mkpath "public/stylesheets/sass/admin"
|
26
|
+
FileUtils.cp_r "../prototype/stylesheets/admin", "public/stylesheets/sass"
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'trusty_cms/task_support'
|
2
|
+
namespace :radiant do
|
3
|
+
namespace :config do
|
4
|
+
desc "Export TrustyCms::Config to Rails.root/config/radiant_config.yml. Specify a path with RADIANT_CONFIG_PATH - defaults to Rails.root/config/radiant_config.yml"
|
5
|
+
task :export => :environment do
|
6
|
+
config_path = ENV['RADIANT_CONFIG_PATH'] || "#{Rails.root}/config/radiant_config.yml"
|
7
|
+
clear = ENV['CLEAR_CONFIG'] || nil
|
8
|
+
TrustyCms::TaskSupport.config_export(config_path)
|
9
|
+
end
|
10
|
+
|
11
|
+
desc "Import TrustyCms::Config from Rails.root/config/radiant_config.yml. Specify a path with RADIANT_CONFIG_PATH - defaults to Rails.root/config/radiant_config.yml Set CLEAR_CONFIG=true to delete all existing settings before import"
|
12
|
+
task :import => :environment do
|
13
|
+
config_path = ENV['RADIANT_CONFIG_PATH'] || "#{Rails.root}/config/radiant_config.yml"
|
14
|
+
clear = ENV['CLEAR_CONFIG'] || nil
|
15
|
+
TrustyCms::TaskSupport.config_import(config_path, clear)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,131 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rdoc/task'
|
4
|
+
require 'rubygems/package_task'
|
5
|
+
require 'trusty_cms'
|
6
|
+
|
7
|
+
PKG_NAME = 'trusty-cms'
|
8
|
+
PKG_VERSION = TrustyCms::Version.to_s
|
9
|
+
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
10
|
+
RUBY_FORGE_PROJECT = PKG_NAME
|
11
|
+
RUBY_FORGE_USER = ENV['RUBY_FORGE_USER'] || 'jlong'
|
12
|
+
|
13
|
+
RELEASE_NAME = ENV['RELEASE_NAME'] || PKG_VERSION
|
14
|
+
RELEASE_NOTES = ENV['RELEASE_NOTES'] ? " -n #{ENV['RELEASE_NOTES']}" : ''
|
15
|
+
RELEASE_CHANGES = ENV['RELEASE_CHANGES'] ? " -a #{ENV['RELEASE_CHANGES']}" : ''
|
16
|
+
RUBY_FORGE_GROUPID = '1337'
|
17
|
+
RUBY_FORGE_PACKAGEID = '1638'
|
18
|
+
|
19
|
+
RDOC_TITLE = "TrustyCms -- Publishing for Small Teams"
|
20
|
+
RDOC_EXTRAS = ["README.md", "CONTRIBUTORS.md", "CHANGELOG.md", "INSTALL.md", "LICENSE.md"]
|
21
|
+
|
22
|
+
namespace 'trusty_cms' do
|
23
|
+
spec = Gem::Specification.new do |s|
|
24
|
+
s.name = PKG_NAME
|
25
|
+
s.version = PKG_VERSION
|
26
|
+
s.author = "TrustyCms CMS dev team"
|
27
|
+
s.email = "radiant@radiantcms.org"
|
28
|
+
s.summary = 'A no-fluff content management system designed for small teams.'
|
29
|
+
s.description = "TrustyCms is a simple and powerful publishing system designed for small teams.\nIt is built with Rails and is similar to Textpattern or MovableType, but is\na general purpose content managment system--not merely a blogging engine."
|
30
|
+
s.homepage = 'http://radiantcms.org'
|
31
|
+
s.rubyforge_project = RUBY_FORGE_PROJECT
|
32
|
+
s.platform = Gem::Platform::RUBY
|
33
|
+
s.bindir = 'bin'
|
34
|
+
s.executables = (Dir['bin/*'] + Dir['scripts/*']).map { |file| File.basename(file) }
|
35
|
+
s.add_dependency 'rake', '>= 0.8.3'
|
36
|
+
s.add_dependency 'rack', '~> 1.1.0' # No longer bundled in actionpack
|
37
|
+
s.add_dependency 'compass', '~> 0.10.4'
|
38
|
+
s.add_dependency 'will_paginate', '~> 2.3.11'
|
39
|
+
s.add_dependency 'RedCloth', '>=4.2.0'
|
40
|
+
s.has_rdoc = true
|
41
|
+
s.rdoc_options << '--title' << RDOC_TITLE << '--line-numbers' << '--main' << 'README'
|
42
|
+
rdoc_excludes = Dir["**"].reject { |f| !File.directory? f }
|
43
|
+
rdoc_excludes.each do |e|
|
44
|
+
s.rdoc_options << '--exclude' << e
|
45
|
+
end
|
46
|
+
s.extra_rdoc_files = RDOC_EXTRAS
|
47
|
+
files = FileList['**/*']
|
48
|
+
files.exclude '**/._*'
|
49
|
+
files.exclude '**/*.rej'
|
50
|
+
files.exclude '.git*'
|
51
|
+
files.exclude /^cache/
|
52
|
+
files.exclude 'config/database.yml'
|
53
|
+
files.exclude 'config/locomotive.yml'
|
54
|
+
files.exclude 'config/lighttpd.conf'
|
55
|
+
files.exclude 'config/mongrel_mimes.yml'
|
56
|
+
files.exclude 'db/*.db'
|
57
|
+
files.exclude /^doc/
|
58
|
+
files.exclude 'log/*.log'
|
59
|
+
files.exclude 'log/*.pid'
|
60
|
+
files.include 'log/.keep'
|
61
|
+
files.exclude /^pkg/
|
62
|
+
files.include 'public/.htaccess'
|
63
|
+
files.exclude /\btmp\b/
|
64
|
+
files.include 'vendor/extensions/.keep'
|
65
|
+
files.exclude 'radiant.gemspec'
|
66
|
+
# Read .gitignore from plugins and exclude those files
|
67
|
+
Dir['vendor/plugins/*/.gitignore'].each do |gi|
|
68
|
+
dirname = File.dirname(gi)
|
69
|
+
File.readlines(gi).each do |i|
|
70
|
+
files.exclude "#{dirname}/**/#{i}"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
s.files = files.to_a
|
74
|
+
end
|
75
|
+
|
76
|
+
Gem::PackageTask.new(spec) do |pkg|
|
77
|
+
pkg.need_zip = true
|
78
|
+
pkg.need_tar = true
|
79
|
+
end
|
80
|
+
|
81
|
+
task :gemspec do
|
82
|
+
File.open('radiant.gemspec', 'w') {|f| f.write spec.to_ruby }
|
83
|
+
end
|
84
|
+
|
85
|
+
namespace :gem do
|
86
|
+
desc "Uninstall Gem"
|
87
|
+
task :uninstall do
|
88
|
+
sudo = "sudo " if ENV['SUDO'] == 'true'
|
89
|
+
sh "#{sudo}gem uninstall #{PKG_NAME}" rescue nil
|
90
|
+
end
|
91
|
+
|
92
|
+
desc "Build and install Gem from source"
|
93
|
+
task :install => [:gemspec, :package, :uninstall] do
|
94
|
+
chdir("#{TRUSTY_CMS_ROOT}/pkg") do
|
95
|
+
latest = Dir["#{PKG_NAME}-*.gem"].last
|
96
|
+
sudo = "sudo " if ENV['SUDO'] == 'true'
|
97
|
+
sh "#{sudo}gem install #{latest}"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
task :gem => [ :generate_cached_assets ]
|
103
|
+
|
104
|
+
desc "Generates cached assets from source files"
|
105
|
+
task :generate_cached_assets do
|
106
|
+
TrustyCms::TaskSupport.cache_admin_js
|
107
|
+
end
|
108
|
+
|
109
|
+
desc "Publish the release files to RubyForge."
|
110
|
+
task :release => [:gem, :package] do
|
111
|
+
files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
|
112
|
+
release_id = nil
|
113
|
+
system %{rubyforge login}
|
114
|
+
files.each_with_index do |file, idx|
|
115
|
+
if idx == 0
|
116
|
+
cmd = %Q[rubyforge add_release #{RELEASE_NOTES}#{RELEASE_CHANGES} --preformatted #{RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} "#{RELEASE_NAME}" #{file}]
|
117
|
+
puts cmd
|
118
|
+
system cmd
|
119
|
+
else
|
120
|
+
release_id ||= begin
|
121
|
+
puts "rubyforge config #{RUBY_FORGE_PROJECT}"
|
122
|
+
system "rubyforge config #{RUBY_FORGE_PROJECT}"
|
123
|
+
`cat ~/.rubyforge/auto-config.yml | grep "#{RELEASE_NAME}"`.strip.split(/:/).last.strip
|
124
|
+
end
|
125
|
+
cmd = %Q[rubyforge add_file #{RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} #{release_id} #{file}]
|
126
|
+
puts cmd
|
127
|
+
system cmd
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|