TrueCar-chef 0.10.0.beta.3
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/LICENSE +201 -0
- data/README.rdoc +171 -0
- data/bin/chef-client +26 -0
- data/bin/chef-solo +25 -0
- data/bin/knife +26 -0
- data/bin/shef +34 -0
- data/distro/README +2 -0
- data/distro/arch/etc/conf.d/chef-client.conf +5 -0
- data/distro/arch/etc/conf.d/chef-server-webui.conf +10 -0
- data/distro/arch/etc/conf.d/chef-server.conf +10 -0
- data/distro/arch/etc/conf.d/chef-solr-indexer.conf +8 -0
- data/distro/arch/etc/conf.d/chef-solr.conf +8 -0
- data/distro/arch/etc/rc.d/chef-client +76 -0
- data/distro/arch/etc/rc.d/chef-server +78 -0
- data/distro/arch/etc/rc.d/chef-server-webui +78 -0
- data/distro/arch/etc/rc.d/chef-solr +78 -0
- data/distro/arch/etc/rc.d/chef-solr-indexer +78 -0
- data/distro/common/man/man1/chef-indexer.1 +42 -0
- data/distro/common/man/man1/chef-server-webui.1 +106 -0
- data/distro/common/man/man1/chef-server.1 +107 -0
- data/distro/common/man/man1/chef-solr-indexer.1 +55 -0
- data/distro/common/man/man1/chef-solr.1 +55 -0
- data/distro/common/man/man8/chef-client.8 +63 -0
- data/distro/common/man/man8/chef-solo.8 +57 -0
- data/distro/common/man/man8/chef-solr-rebuild.8 +37 -0
- data/distro/common/man/man8/knife.8 +1349 -0
- data/distro/common/man/man8/shef.8 +45 -0
- data/distro/common/markdown/README +3 -0
- data/distro/common/markdown/knife.mkd +865 -0
- data/distro/debian/etc/default/chef-client +4 -0
- data/distro/debian/etc/default/chef-server +9 -0
- data/distro/debian/etc/default/chef-server-webui +9 -0
- data/distro/debian/etc/default/chef-solr +8 -0
- data/distro/debian/etc/default/chef-solr-indexer +7 -0
- data/distro/debian/etc/init.d/chef-client +175 -0
- data/distro/debian/etc/init.d/chef-server +122 -0
- data/distro/debian/etc/init.d/chef-server-webui +123 -0
- data/distro/debian/etc/init.d/chef-solr +176 -0
- data/distro/debian/etc/init.d/chef-solr-indexer +176 -0
- data/distro/debian/etc/init/chef-client.conf +17 -0
- data/distro/debian/etc/init/chef-server-webui.conf +17 -0
- data/distro/debian/etc/init/chef-server.conf +17 -0
- data/distro/debian/etc/init/chef-solr-indexer.conf +17 -0
- data/distro/debian/etc/init/chef-solr.conf +17 -0
- data/distro/redhat/etc/init.d/chef-client +106 -0
- data/distro/redhat/etc/init.d/chef-server +112 -0
- data/distro/redhat/etc/init.d/chef-server-webui +112 -0
- data/distro/redhat/etc/init.d/chef-solr +104 -0
- data/distro/redhat/etc/init.d/chef-solr-indexer +104 -0
- data/distro/redhat/etc/logrotate.d/chef-client +8 -0
- data/distro/redhat/etc/logrotate.d/chef-server +8 -0
- data/distro/redhat/etc/logrotate.d/chef-server-webui +8 -0
- data/distro/redhat/etc/logrotate.d/chef-solr +8 -0
- data/distro/redhat/etc/logrotate.d/chef-solr-indexer +8 -0
- data/distro/redhat/etc/sysconfig/chef-client +15 -0
- data/distro/redhat/etc/sysconfig/chef-server +14 -0
- data/distro/redhat/etc/sysconfig/chef-server-webui +14 -0
- data/distro/redhat/etc/sysconfig/chef-solr +8 -0
- data/distro/redhat/etc/sysconfig/chef-solr-indexer +7 -0
- data/lib/chef.rb +40 -0
- data/lib/chef/api_client.rb +264 -0
- data/lib/chef/application.rb +137 -0
- data/lib/chef/application/agent.rb +18 -0
- data/lib/chef/application/client.rb +242 -0
- data/lib/chef/application/knife.rb +169 -0
- data/lib/chef/application/solo.rb +217 -0
- data/lib/chef/applications.rb +4 -0
- data/lib/chef/certificate.rb +194 -0
- data/lib/chef/checksum.rb +182 -0
- data/lib/chef/checksum_cache.rb +189 -0
- data/lib/chef/client.rb +362 -0
- data/lib/chef/config.rb +244 -0
- data/lib/chef/cookbook/chefignore.rb +66 -0
- data/lib/chef/cookbook/cookbook_collection.rb +45 -0
- data/lib/chef/cookbook/cookbook_version_loader.rb +151 -0
- data/lib/chef/cookbook/file_system_file_vendor.rb +56 -0
- data/lib/chef/cookbook/file_vendor.rb +48 -0
- data/lib/chef/cookbook/metadata.rb +592 -0
- data/lib/chef/cookbook/remote_file_vendor.rb +87 -0
- data/lib/chef/cookbook/syntax_check.rb +136 -0
- data/lib/chef/cookbook_loader.rb +103 -0
- data/lib/chef/cookbook_site_streaming_uploader.rb +244 -0
- data/lib/chef/cookbook_uploader.rb +125 -0
- data/lib/chef/cookbook_version.rb +979 -0
- data/lib/chef/cookbook_version_selector.rb +163 -0
- data/lib/chef/couchdb.rb +247 -0
- data/lib/chef/daemon.rb +172 -0
- data/lib/chef/data_bag.rb +223 -0
- data/lib/chef/data_bag_item.rb +267 -0
- data/lib/chef/encrypted_data_bag_item.rb +126 -0
- data/lib/chef/environment.rb +386 -0
- data/lib/chef/exceptions.rb +153 -0
- data/lib/chef/file_access_control.rb +140 -0
- data/lib/chef/file_cache.rb +218 -0
- data/lib/chef/handler.rb +206 -0
- data/lib/chef/handler/json_file.rb +58 -0
- data/lib/chef/index_queue.rb +29 -0
- data/lib/chef/index_queue/amqp_client.rb +116 -0
- data/lib/chef/index_queue/consumer.rb +76 -0
- data/lib/chef/index_queue/indexable.rb +109 -0
- data/lib/chef/json_compat.rb +52 -0
- data/lib/chef/knife.rb +424 -0
- data/lib/chef/knife/bootstrap.rb +185 -0
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +47 -0
- data/lib/chef/knife/bootstrap/centos5-gems.erb +41 -0
- data/lib/chef/knife/bootstrap/client-install.vbs +80 -0
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +38 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +32 -0
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +46 -0
- data/lib/chef/knife/bootstrap/windows-gems.erb +34 -0
- data/lib/chef/knife/client_bulk_delete.rb +43 -0
- data/lib/chef/knife/client_create.rb +73 -0
- data/lib/chef/knife/client_delete.rb +48 -0
- data/lib/chef/knife/client_edit.rb +48 -0
- data/lib/chef/knife/client_list.rb +43 -0
- data/lib/chef/knife/client_reregister.rb +59 -0
- data/lib/chef/knife/client_show.rb +53 -0
- data/lib/chef/knife/configure.rb +136 -0
- data/lib/chef/knife/configure_client.rb +52 -0
- data/lib/chef/knife/cookbook_bulk_delete.rb +61 -0
- data/lib/chef/knife/cookbook_create.rb +274 -0
- data/lib/chef/knife/cookbook_delete.rb +149 -0
- data/lib/chef/knife/cookbook_download.rb +134 -0
- data/lib/chef/knife/cookbook_list.rb +50 -0
- data/lib/chef/knife/cookbook_metadata.rb +102 -0
- data/lib/chef/knife/cookbook_metadata_from_file.rb +44 -0
- data/lib/chef/knife/cookbook_show.rb +101 -0
- data/lib/chef/knife/cookbook_site_download.rb +58 -0
- data/lib/chef/knife/cookbook_site_list.rb +56 -0
- data/lib/chef/knife/cookbook_site_search.rb +51 -0
- data/lib/chef/knife/cookbook_site_share.rb +114 -0
- data/lib/chef/knife/cookbook_site_show.rb +57 -0
- data/lib/chef/knife/cookbook_site_unshare.rb +56 -0
- data/lib/chef/knife/cookbook_site_vendor.rb +145 -0
- data/lib/chef/knife/cookbook_test.rb +82 -0
- data/lib/chef/knife/cookbook_upload.rb +146 -0
- data/lib/chef/knife/data_bag_create.rb +94 -0
- data/lib/chef/knife/data_bag_delete.rb +51 -0
- data/lib/chef/knife/data_bag_edit.rb +94 -0
- data/lib/chef/knife/data_bag_from_file.rb +85 -0
- data/lib/chef/knife/data_bag_list.rb +46 -0
- data/lib/chef/knife/data_bag_show.rb +81 -0
- data/lib/chef/knife/environment_create.rb +53 -0
- data/lib/chef/knife/environment_delete.rb +45 -0
- data/lib/chef/knife/environment_edit.rb +45 -0
- data/lib/chef/knife/environment_from_file.rb +39 -0
- data/lib/chef/knife/environment_list.rb +42 -0
- data/lib/chef/knife/environment_show.rb +46 -0
- data/lib/chef/knife/exec.rb +51 -0
- data/lib/chef/knife/index_rebuild.rb +50 -0
- data/lib/chef/knife/node_bulk_delete.rb +46 -0
- data/lib/chef/knife/node_create.rb +50 -0
- data/lib/chef/knife/node_delete.rb +47 -0
- data/lib/chef/knife/node_edit.rb +163 -0
- data/lib/chef/knife/node_from_file.rb +45 -0
- data/lib/chef/knife/node_list.rb +46 -0
- data/lib/chef/knife/node_run_list_add.rb +67 -0
- data/lib/chef/knife/node_run_list_remove.rb +48 -0
- data/lib/chef/knife/node_show.rb +62 -0
- data/lib/chef/knife/recipe_list.rb +33 -0
- data/lib/chef/knife/role_bulk_delete.rb +47 -0
- data/lib/chef/knife/role_create.rb +55 -0
- data/lib/chef/knife/role_delete.rb +47 -0
- data/lib/chef/knife/role_edit.rb +48 -0
- data/lib/chef/knife/role_from_file.rb +49 -0
- data/lib/chef/knife/role_list.rb +43 -0
- data/lib/chef/knife/role_show.rb +54 -0
- data/lib/chef/knife/search.rb +123 -0
- data/lib/chef/knife/ssh.rb +318 -0
- data/lib/chef/knife/status.rb +90 -0
- data/lib/chef/knife/subcommand_loader.rb +101 -0
- data/lib/chef/knife/tag_create.rb +31 -0
- data/lib/chef/knife/tag_delete.rb +31 -0
- data/lib/chef/knife/tag_list.rb +29 -0
- data/lib/chef/knife/ui.rb +227 -0
- data/lib/chef/knife/windows_bootstrap.rb +157 -0
- data/lib/chef/log.rb +39 -0
- data/lib/chef/mash.rb +211 -0
- data/lib/chef/mixin/check_helper.rb +31 -0
- data/lib/chef/mixin/checksum.rb +32 -0
- data/lib/chef/mixin/command.rb +221 -0
- data/lib/chef/mixin/command/unix.rb +215 -0
- data/lib/chef/mixin/command/windows.rb +76 -0
- data/lib/chef/mixin/convert_to_class_name.rb +63 -0
- data/lib/chef/mixin/create_path.rb +56 -0
- data/lib/chef/mixin/deep_merge.rb +225 -0
- data/lib/chef/mixin/deprecation.rb +65 -0
- data/lib/chef/mixin/from_file.rb +50 -0
- data/lib/chef/mixin/language.rb +165 -0
- data/lib/chef/mixin/language_include_attribute.rb +61 -0
- data/lib/chef/mixin/language_include_recipe.rb +52 -0
- data/lib/chef/mixin/params_validate.rb +225 -0
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +81 -0
- data/lib/chef/mixin/shell_out.rb +40 -0
- data/lib/chef/mixin/template.rb +95 -0
- data/lib/chef/mixin/xml_escape.rb +140 -0
- data/lib/chef/mixins.rb +15 -0
- data/lib/chef/monkey_patches/dir.rb +36 -0
- data/lib/chef/monkey_patches/numeric.rb +7 -0
- data/lib/chef/monkey_patches/regexp.rb +34 -0
- data/lib/chef/monkey_patches/string.rb +28 -0
- data/lib/chef/monkey_patches/tempfile.rb +64 -0
- data/lib/chef/nil_argument.rb +3 -0
- data/lib/chef/node.rb +661 -0
- data/lib/chef/node/attribute.rb +487 -0
- data/lib/chef/openid_registration.rb +187 -0
- data/lib/chef/platform.rb +409 -0
- data/lib/chef/provider.rb +124 -0
- data/lib/chef/provider/breakpoint.rb +36 -0
- data/lib/chef/provider/cookbook_file.rb +101 -0
- data/lib/chef/provider/cron.rb +186 -0
- data/lib/chef/provider/cron/solaris.rb +195 -0
- data/lib/chef/provider/deploy.rb +320 -0
- data/lib/chef/provider/deploy/revision.rb +80 -0
- data/lib/chef/provider/deploy/timestamped.rb +33 -0
- data/lib/chef/provider/directory.rb +72 -0
- data/lib/chef/provider/env.rb +152 -0
- data/lib/chef/provider/env/windows.rb +75 -0
- data/lib/chef/provider/erl_call.rb +100 -0
- data/lib/chef/provider/execute.rb +60 -0
- data/lib/chef/provider/file.rb +222 -0
- data/lib/chef/provider/git.rb +221 -0
- data/lib/chef/provider/group.rb +133 -0
- data/lib/chef/provider/group/aix.rb +70 -0
- data/lib/chef/provider/group/dscl.rb +121 -0
- data/lib/chef/provider/group/gpasswd.rb +53 -0
- data/lib/chef/provider/group/groupadd.rb +81 -0
- data/lib/chef/provider/group/pw.rb +84 -0
- data/lib/chef/provider/group/usermod.rb +57 -0
- data/lib/chef/provider/group/windows.rb +79 -0
- data/lib/chef/provider/http_request.rb +122 -0
- data/lib/chef/provider/ifconfig.rb +132 -0
- data/lib/chef/provider/link.rb +161 -0
- data/lib/chef/provider/log.rb +54 -0
- data/lib/chef/provider/mdadm.rb +91 -0
- data/lib/chef/provider/mount.rb +117 -0
- data/lib/chef/provider/mount/mount.rb +232 -0
- data/lib/chef/provider/mount/windows.rb +80 -0
- data/lib/chef/provider/ohai.rb +41 -0
- data/lib/chef/provider/package.rb +160 -0
- data/lib/chef/provider/package/apt.rb +110 -0
- data/lib/chef/provider/package/dpkg.rb +112 -0
- data/lib/chef/provider/package/easy_install.rb +136 -0
- data/lib/chef/provider/package/freebsd.rb +123 -0
- data/lib/chef/provider/package/macports.rb +105 -0
- data/lib/chef/provider/package/pacman.rb +101 -0
- data/lib/chef/provider/package/portage.rb +135 -0
- data/lib/chef/provider/package/rpm.rb +101 -0
- data/lib/chef/provider/package/rubygems.rb +462 -0
- data/lib/chef/provider/package/solaris.rb +127 -0
- data/lib/chef/provider/package/yum-dump.py +128 -0
- data/lib/chef/provider/package/yum.rb +261 -0
- data/lib/chef/provider/package/zypper.rb +133 -0
- data/lib/chef/provider/remote_directory.rb +138 -0
- data/lib/chef/provider/remote_file.rb +119 -0
- data/lib/chef/provider/route.rb +195 -0
- data/lib/chef/provider/ruby_block.rb +33 -0
- data/lib/chef/provider/script.rb +55 -0
- data/lib/chef/provider/service.rb +128 -0
- data/lib/chef/provider/service/arch.rb +109 -0
- data/lib/chef/provider/service/debian.rb +130 -0
- data/lib/chef/provider/service/freebsd.rb +156 -0
- data/lib/chef/provider/service/gentoo.rb +54 -0
- data/lib/chef/provider/service/init.rb +71 -0
- data/lib/chef/provider/service/insserv.rb +52 -0
- data/lib/chef/provider/service/redhat.rb +60 -0
- data/lib/chef/provider/service/simple.rb +118 -0
- data/lib/chef/provider/service/solaris.rb +85 -0
- data/lib/chef/provider/service/upstart.rb +192 -0
- data/lib/chef/provider/service/windows.rb +146 -0
- data/lib/chef/provider/subversion.rb +194 -0
- data/lib/chef/provider/template.rb +105 -0
- data/lib/chef/provider/user.rb +187 -0
- data/lib/chef/provider/user/dscl.rb +280 -0
- data/lib/chef/provider/user/pw.rb +113 -0
- data/lib/chef/provider/user/useradd.rb +137 -0
- data/lib/chef/provider/user/windows.rb +124 -0
- data/lib/chef/providers.rb +93 -0
- data/lib/chef/recipe.rb +128 -0
- data/lib/chef/resource.rb +530 -0
- data/lib/chef/resource/apt_package.rb +34 -0
- data/lib/chef/resource/bash.rb +33 -0
- data/lib/chef/resource/breakpoint.rb +35 -0
- data/lib/chef/resource/cookbook_file.rb +45 -0
- data/lib/chef/resource/cron.rb +188 -0
- data/lib/chef/resource/csh.rb +33 -0
- data/lib/chef/resource/deploy.rb +371 -0
- data/lib/chef/resource/deploy_revision.rb +35 -0
- data/lib/chef/resource/directory.rb +76 -0
- data/lib/chef/resource/dpkg_package.rb +34 -0
- data/lib/chef/resource/easy_install_package.rb +57 -0
- data/lib/chef/resource/env.rb +58 -0
- data/lib/chef/resource/erl_call.rb +83 -0
- data/lib/chef/resource/execute.rb +127 -0
- data/lib/chef/resource/file.rb +99 -0
- data/lib/chef/resource/freebsd_package.rb +35 -0
- data/lib/chef/resource/gem_package.rb +53 -0
- data/lib/chef/resource/git.rb +37 -0
- data/lib/chef/resource/group.rb +70 -0
- data/lib/chef/resource/http_request.rb +61 -0
- data/lib/chef/resource/ifconfig.rb +134 -0
- data/lib/chef/resource/link.rb +78 -0
- data/lib/chef/resource/log.rb +62 -0
- data/lib/chef/resource/macports_package.rb +29 -0
- data/lib/chef/resource/mdadm.rb +82 -0
- data/lib/chef/resource/mount.rb +135 -0
- data/lib/chef/resource/ohai.rb +40 -0
- data/lib/chef/resource/package.rb +80 -0
- data/lib/chef/resource/pacman_package.rb +33 -0
- data/lib/chef/resource/perl.rb +33 -0
- data/lib/chef/resource/portage_package.rb +33 -0
- data/lib/chef/resource/python.rb +33 -0
- data/lib/chef/resource/remote_directory.rb +109 -0
- data/lib/chef/resource/remote_file.rb +83 -0
- data/lib/chef/resource/route.rb +135 -0
- data/lib/chef/resource/rpm_package.rb +34 -0
- data/lib/chef/resource/ruby.rb +33 -0
- data/lib/chef/resource/ruby_block.rb +40 -0
- data/lib/chef/resource/scm.rb +147 -0
- data/lib/chef/resource/script.rb +60 -0
- data/lib/chef/resource/service.rb +160 -0
- data/lib/chef/resource/solaris_package.rb +36 -0
- data/lib/chef/resource/subversion.rb +36 -0
- data/lib/chef/resource/template.rb +69 -0
- data/lib/chef/resource/timestamped_deploy.rb +31 -0
- data/lib/chef/resource/user.rb +130 -0
- data/lib/chef/resource/yum_package.rb +43 -0
- data/lib/chef/resource_collection.rb +217 -0
- data/lib/chef/resource_collection/stepable_iterator.rb +124 -0
- data/lib/chef/resource_definition.rb +67 -0
- data/lib/chef/resource_definition_list.rb +38 -0
- data/lib/chef/resources.rb +64 -0
- data/lib/chef/rest.rb +386 -0
- data/lib/chef/rest/auth_credentials.rb +71 -0
- data/lib/chef/rest/cookie_jar.rb +31 -0
- data/lib/chef/rest/rest_request.rb +188 -0
- data/lib/chef/role.rb +341 -0
- data/lib/chef/run_context.rb +126 -0
- data/lib/chef/run_list.rb +165 -0
- data/lib/chef/run_list/run_list_expansion.rb +193 -0
- data/lib/chef/run_list/run_list_item.rb +92 -0
- data/lib/chef/run_list/versioned_recipe_list.rb +68 -0
- data/lib/chef/run_status.rb +121 -0
- data/lib/chef/runner.rb +99 -0
- data/lib/chef/sandbox.rb +153 -0
- data/lib/chef/search/query.rb +65 -0
- data/lib/chef/shef.rb +326 -0
- data/lib/chef/shef/ext.rb +569 -0
- data/lib/chef/shef/model_wrapper.rb +120 -0
- data/lib/chef/shef/shef_rest.rb +28 -0
- data/lib/chef/shef/shef_session.rb +284 -0
- data/lib/chef/shell_out.rb +238 -0
- data/lib/chef/shell_out/unix.rb +223 -0
- data/lib/chef/shell_out/windows.rb +98 -0
- data/lib/chef/solr_query.rb +187 -0
- data/lib/chef/solr_query/lucene.treetop +150 -0
- data/lib/chef/solr_query/lucene_nodes.rb +285 -0
- data/lib/chef/solr_query/query_transform.rb +65 -0
- data/lib/chef/solr_query/solr_http_request.rb +118 -0
- data/lib/chef/streaming_cookbook_uploader.rb +201 -0
- data/lib/chef/tasks/chef_repo.rake +256 -0
- data/lib/chef/util/file_edit.rb +122 -0
- data/lib/chef/util/windows.rb +56 -0
- data/lib/chef/util/windows/net_group.rb +101 -0
- data/lib/chef/util/windows/net_use.rb +121 -0
- data/lib/chef/util/windows/net_user.rb +198 -0
- data/lib/chef/util/windows/volume.rb +59 -0
- data/lib/chef/version.rb +23 -0
- data/lib/chef/version_class.rb +70 -0
- data/lib/chef/version_constraint.rb +116 -0
- data/lib/chef/webui_user.rb +231 -0
- metadata +600 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'chef/resource/package'
|
|
20
|
+
require 'chef/provider/package/apt'
|
|
21
|
+
|
|
22
|
+
class Chef
|
|
23
|
+
class Resource
|
|
24
|
+
class AptPackage < Chef::Resource::Package
|
|
25
|
+
|
|
26
|
+
def initialize(name, run_context=nil)
|
|
27
|
+
super
|
|
28
|
+
@resource_name = :apt_package
|
|
29
|
+
@provider = Chef::Provider::Package::Apt
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'chef/resource/script'
|
|
20
|
+
|
|
21
|
+
class Chef
|
|
22
|
+
class Resource
|
|
23
|
+
class Bash < Chef::Resource::Script
|
|
24
|
+
|
|
25
|
+
def initialize(name, run_context=nil)
|
|
26
|
+
super
|
|
27
|
+
@resource_name = :bash
|
|
28
|
+
@interpreter = "bash"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Daniel DeLeo (<dan@kallistec.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
require 'chef/resource'
|
|
21
|
+
|
|
22
|
+
class Chef
|
|
23
|
+
class Resource
|
|
24
|
+
class Breakpoint < Chef::Resource
|
|
25
|
+
|
|
26
|
+
def initialize(action="break", *args)
|
|
27
|
+
@name = caller.first
|
|
28
|
+
super(@name, *args)
|
|
29
|
+
@action = "break"
|
|
30
|
+
@allowed_actions << :break
|
|
31
|
+
@provider = Chef::Provider::Breakpoint
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'chef/resource/file'
|
|
20
|
+
require 'chef/provider/cookbook_file'
|
|
21
|
+
|
|
22
|
+
class Chef
|
|
23
|
+
class Resource
|
|
24
|
+
class CookbookFile < Chef::Resource::File
|
|
25
|
+
|
|
26
|
+
def initialize(name, run_context=nil)
|
|
27
|
+
super
|
|
28
|
+
@provider = Chef::Provider::CookbookFile
|
|
29
|
+
@resource_name = :cookbook_file
|
|
30
|
+
@action = "create"
|
|
31
|
+
@source = ::File.basename(name)
|
|
32
|
+
@cookbook = nil
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def source(source_filename=nil)
|
|
36
|
+
set_or_return(:source, source_filename, :kind_of => String)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def cookbook(cookbook_name=nil)
|
|
40
|
+
set_or_return(:cookbook, cookbook_name, :kind_of => String)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Bryan McLellan (btm@loftninjas.org)
|
|
3
|
+
# Copyright:: Copyright (c) 2009 Bryan McLellan
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'chef/resource'
|
|
20
|
+
|
|
21
|
+
class Chef
|
|
22
|
+
class Resource
|
|
23
|
+
class Cron < Chef::Resource
|
|
24
|
+
|
|
25
|
+
def initialize(name, run_context=nil)
|
|
26
|
+
super
|
|
27
|
+
@resource_name = :cron
|
|
28
|
+
@action = :create
|
|
29
|
+
@allowed_actions.push(:create, :delete)
|
|
30
|
+
@minute = "*"
|
|
31
|
+
@hour = "*"
|
|
32
|
+
@day = "*"
|
|
33
|
+
@month = "*"
|
|
34
|
+
@weekday = "*"
|
|
35
|
+
@command = nil
|
|
36
|
+
@user = "root"
|
|
37
|
+
@mailto = nil
|
|
38
|
+
@path = nil
|
|
39
|
+
@shell = nil
|
|
40
|
+
@home = nil
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def minute(arg=nil)
|
|
44
|
+
if arg.is_a?(Integer)
|
|
45
|
+
converted_arg = arg.to_s
|
|
46
|
+
else
|
|
47
|
+
converted_arg = arg
|
|
48
|
+
end
|
|
49
|
+
begin
|
|
50
|
+
if integerize(arg) > 59 then raise RangeError end
|
|
51
|
+
rescue ArgumentError
|
|
52
|
+
end
|
|
53
|
+
set_or_return(
|
|
54
|
+
:minute,
|
|
55
|
+
converted_arg,
|
|
56
|
+
:kind_of => String
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def hour(arg=nil)
|
|
61
|
+
if arg.is_a?(Integer)
|
|
62
|
+
converted_arg = arg.to_s
|
|
63
|
+
else
|
|
64
|
+
converted_arg = arg
|
|
65
|
+
end
|
|
66
|
+
begin
|
|
67
|
+
if integerize(arg) > 23 then raise RangeError end
|
|
68
|
+
rescue ArgumentError
|
|
69
|
+
end
|
|
70
|
+
set_or_return(
|
|
71
|
+
:hour,
|
|
72
|
+
converted_arg,
|
|
73
|
+
:kind_of => String
|
|
74
|
+
)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def day(arg=nil)
|
|
78
|
+
if arg.is_a?(Integer)
|
|
79
|
+
converted_arg = arg.to_s
|
|
80
|
+
else
|
|
81
|
+
converted_arg = arg
|
|
82
|
+
end
|
|
83
|
+
begin
|
|
84
|
+
if integerize(arg) > 31 then raise RangeError end
|
|
85
|
+
rescue ArgumentError
|
|
86
|
+
end
|
|
87
|
+
set_or_return(
|
|
88
|
+
:day,
|
|
89
|
+
converted_arg,
|
|
90
|
+
:kind_of => String
|
|
91
|
+
)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def month(arg=nil)
|
|
95
|
+
if arg.is_a?(Integer)
|
|
96
|
+
converted_arg = arg.to_s
|
|
97
|
+
else
|
|
98
|
+
converted_arg = arg
|
|
99
|
+
end
|
|
100
|
+
begin
|
|
101
|
+
if integerize(arg) > 12 then raise RangeError end
|
|
102
|
+
rescue ArgumentError
|
|
103
|
+
end
|
|
104
|
+
set_or_return(
|
|
105
|
+
:month,
|
|
106
|
+
converted_arg,
|
|
107
|
+
:kind_of => String
|
|
108
|
+
)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def weekday(arg=nil)
|
|
112
|
+
if arg.is_a?(Integer)
|
|
113
|
+
converted_arg = arg.to_s
|
|
114
|
+
else
|
|
115
|
+
converted_arg = arg
|
|
116
|
+
end
|
|
117
|
+
begin
|
|
118
|
+
if integerize(arg) > 7 then raise RangeError end
|
|
119
|
+
rescue ArgumentError
|
|
120
|
+
end
|
|
121
|
+
set_or_return(
|
|
122
|
+
:weekday,
|
|
123
|
+
converted_arg,
|
|
124
|
+
:kind_of => String
|
|
125
|
+
)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def mailto(arg=nil)
|
|
129
|
+
set_or_return(
|
|
130
|
+
:mailto,
|
|
131
|
+
arg,
|
|
132
|
+
:kind_of => String
|
|
133
|
+
)
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def path(arg=nil)
|
|
137
|
+
set_or_return(
|
|
138
|
+
:path,
|
|
139
|
+
arg,
|
|
140
|
+
:kind_of => String
|
|
141
|
+
)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def home(arg=nil)
|
|
145
|
+
set_or_return(
|
|
146
|
+
:home,
|
|
147
|
+
arg,
|
|
148
|
+
:kind_of => String
|
|
149
|
+
)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def shell(arg=nil)
|
|
153
|
+
set_or_return(
|
|
154
|
+
:shell,
|
|
155
|
+
arg,
|
|
156
|
+
:kind_of => String
|
|
157
|
+
)
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def command(arg=nil)
|
|
161
|
+
set_or_return(
|
|
162
|
+
:command,
|
|
163
|
+
arg,
|
|
164
|
+
:kind_of => String
|
|
165
|
+
)
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def user(arg=nil)
|
|
169
|
+
set_or_return(
|
|
170
|
+
:user,
|
|
171
|
+
arg,
|
|
172
|
+
:kind_of => String
|
|
173
|
+
)
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
private
|
|
177
|
+
|
|
178
|
+
# On Ruby 1.8, Kernel#Integer will happily do this for you. On 1.9, no.
|
|
179
|
+
def integerize(integerish)
|
|
180
|
+
Integer(integerish)
|
|
181
|
+
rescue TypeError
|
|
182
|
+
0
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'chef/resource/script'
|
|
20
|
+
|
|
21
|
+
class Chef
|
|
22
|
+
class Resource
|
|
23
|
+
class Csh < Chef::Resource::Script
|
|
24
|
+
|
|
25
|
+
def initialize(name, run_context=nil)
|
|
26
|
+
super
|
|
27
|
+
@resource_name = :csh
|
|
28
|
+
@interpreter = "csh"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Daniel DeLeo (<dan@kallistec.com>)
|
|
3
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
# EX:
|
|
20
|
+
# deploy "/my/deploy/dir" do
|
|
21
|
+
# repo "git@github.com/whoami/project"
|
|
22
|
+
# revision "abc123" # or "HEAD" or "TAG_for_1.0" or (subversion) "1234"
|
|
23
|
+
# user "deploy_ninja"
|
|
24
|
+
# enable_submodules true
|
|
25
|
+
# migrate true
|
|
26
|
+
# migration_command "rake db:migrate"
|
|
27
|
+
# environment "RAILS_ENV" => "production", "OTHER_ENV" => "foo"
|
|
28
|
+
# shallow_clone true
|
|
29
|
+
# action :deploy # or :rollback
|
|
30
|
+
# restart_command "touch tmp/restart.txt"
|
|
31
|
+
# git_ssh_wrapper "wrap-ssh4git.sh"
|
|
32
|
+
# scm_provider Chef::Provider::Git # is the default, for svn: Chef::Provider::Subversion
|
|
33
|
+
# svn_username "whoami"
|
|
34
|
+
# svn_password "supersecret"
|
|
35
|
+
# end
|
|
36
|
+
|
|
37
|
+
require "chef/resource/scm"
|
|
38
|
+
|
|
39
|
+
class Chef
|
|
40
|
+
class Resource
|
|
41
|
+
|
|
42
|
+
# Deploy: Deploy apps from a source control repository.
|
|
43
|
+
#
|
|
44
|
+
# Callbacks:
|
|
45
|
+
# Callbacks can be a block or a string. If given a block, the code
|
|
46
|
+
# is evaluated as an embedded recipe, and run at the specified
|
|
47
|
+
# point in the deploy process. If given a string, the string is taken as
|
|
48
|
+
# a path to a callback file/recipe. Paths are evaluated relative to the
|
|
49
|
+
# release directory. Callback files can contain chef code (resources, etc.)
|
|
50
|
+
#
|
|
51
|
+
class Deploy < Chef::Resource
|
|
52
|
+
|
|
53
|
+
provider_base Chef::Provider::Deploy
|
|
54
|
+
|
|
55
|
+
def initialize(name, run_context=nil)
|
|
56
|
+
super
|
|
57
|
+
@resource_name = :deploy
|
|
58
|
+
@deploy_to = name
|
|
59
|
+
@environment = nil
|
|
60
|
+
@repository_cache = 'cached-copy'
|
|
61
|
+
@copy_exclude = []
|
|
62
|
+
@purge_before_symlink = %w{log tmp/pids public/system}
|
|
63
|
+
@create_dirs_before_symlink = %w{tmp public config}
|
|
64
|
+
@symlink_before_migrate = {"config/database.yml" => "config/database.yml"}
|
|
65
|
+
@symlinks = {"system" => "public/system", "pids" => "tmp/pids", "log" => "log"}
|
|
66
|
+
@revision = 'HEAD'
|
|
67
|
+
@action = :deploy
|
|
68
|
+
@migrate = false
|
|
69
|
+
@remote = "origin"
|
|
70
|
+
@enable_submodules = false
|
|
71
|
+
@shallow_clone = false
|
|
72
|
+
@scm_provider = Chef::Provider::Git
|
|
73
|
+
@svn_force_export = false
|
|
74
|
+
@provider = Chef::Provider::Deploy::Timestamped
|
|
75
|
+
@allowed_actions.push(:force_deploy, :deploy, :rollback)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# where the checked out/cloned code goes
|
|
79
|
+
def destination
|
|
80
|
+
@destination ||= shared_path + "/#{@repository_cache}"
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# where shared stuff goes, i.e., logs, tmp, etc. goes here
|
|
84
|
+
def shared_path
|
|
85
|
+
@shared_path ||= @deploy_to + "/shared"
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# where the deployed version of your code goes
|
|
89
|
+
def current_path
|
|
90
|
+
@current_path ||= @deploy_to + "/current"
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def depth
|
|
94
|
+
@shallow_clone ? "5" : nil
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# note: deploy_to is your application "meta-root."
|
|
98
|
+
def deploy_to(arg=nil)
|
|
99
|
+
set_or_return(
|
|
100
|
+
:deploy_to,
|
|
101
|
+
arg,
|
|
102
|
+
:kind_of => [ String ]
|
|
103
|
+
)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def repo(arg=nil)
|
|
107
|
+
set_or_return(
|
|
108
|
+
:repo,
|
|
109
|
+
arg,
|
|
110
|
+
:kind_of => [ String ]
|
|
111
|
+
)
|
|
112
|
+
end
|
|
113
|
+
alias :repository :repo
|
|
114
|
+
|
|
115
|
+
def remote(arg=nil)
|
|
116
|
+
set_or_return(
|
|
117
|
+
:remote,
|
|
118
|
+
arg,
|
|
119
|
+
:kind_of => [ String ]
|
|
120
|
+
)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def role(arg=nil)
|
|
124
|
+
set_or_return(
|
|
125
|
+
:role,
|
|
126
|
+
arg,
|
|
127
|
+
:kind_of => [ String ]
|
|
128
|
+
)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def restart_command(arg=nil, &block)
|
|
132
|
+
arg ||= block
|
|
133
|
+
set_or_return(
|
|
134
|
+
:restart_command,
|
|
135
|
+
arg,
|
|
136
|
+
:kind_of => [ String, Proc ]
|
|
137
|
+
)
|
|
138
|
+
end
|
|
139
|
+
alias :restart :restart_command
|
|
140
|
+
|
|
141
|
+
def migrate(arg=nil)
|
|
142
|
+
set_or_return(
|
|
143
|
+
:migrate,
|
|
144
|
+
arg,
|
|
145
|
+
:kind_of => [ TrueClass, FalseClass ]
|
|
146
|
+
)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def migration_command(arg=nil)
|
|
150
|
+
set_or_return(
|
|
151
|
+
:migration_command,
|
|
152
|
+
arg,
|
|
153
|
+
:kind_of => [ String ]
|
|
154
|
+
)
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
def user(arg=nil)
|
|
158
|
+
set_or_return(
|
|
159
|
+
:user,
|
|
160
|
+
arg,
|
|
161
|
+
:kind_of => [ String ]
|
|
162
|
+
)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def group(arg=nil)
|
|
166
|
+
set_or_return(
|
|
167
|
+
:group,
|
|
168
|
+
arg,
|
|
169
|
+
:kind_of => [ String ]
|
|
170
|
+
)
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def enable_submodules(arg=nil)
|
|
174
|
+
set_or_return(
|
|
175
|
+
:enable_submodules,
|
|
176
|
+
arg,
|
|
177
|
+
:kind_of => [ TrueClass, FalseClass ]
|
|
178
|
+
)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
def shallow_clone(arg=nil)
|
|
182
|
+
set_or_return(
|
|
183
|
+
:shallow_clone,
|
|
184
|
+
arg,
|
|
185
|
+
:kind_of => [ TrueClass, FalseClass ]
|
|
186
|
+
)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def repository_cache(arg=nil)
|
|
190
|
+
set_or_return(
|
|
191
|
+
:repository_cache,
|
|
192
|
+
arg,
|
|
193
|
+
:kind_of => [ String ]
|
|
194
|
+
)
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
def copy_exclude(arg=nil)
|
|
198
|
+
set_or_return(
|
|
199
|
+
:copy_exclude,
|
|
200
|
+
arg,
|
|
201
|
+
:kind_of => [ String ]
|
|
202
|
+
)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
def revision(arg=nil)
|
|
206
|
+
set_or_return(
|
|
207
|
+
:revision,
|
|
208
|
+
arg,
|
|
209
|
+
:kind_of => [ String ]
|
|
210
|
+
)
|
|
211
|
+
end
|
|
212
|
+
alias :branch :revision
|
|
213
|
+
|
|
214
|
+
def git_ssh_wrapper(arg=nil)
|
|
215
|
+
set_or_return(
|
|
216
|
+
:git_ssh_wrapper,
|
|
217
|
+
arg,
|
|
218
|
+
:kind_of => [ String ]
|
|
219
|
+
)
|
|
220
|
+
end
|
|
221
|
+
alias :ssh_wrapper :git_ssh_wrapper
|
|
222
|
+
|
|
223
|
+
def svn_username(arg=nil)
|
|
224
|
+
set_or_return(
|
|
225
|
+
:svn_username,
|
|
226
|
+
arg,
|
|
227
|
+
:kind_of => [ String ]
|
|
228
|
+
)
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def svn_password(arg=nil)
|
|
232
|
+
set_or_return(
|
|
233
|
+
:svn_password,
|
|
234
|
+
arg,
|
|
235
|
+
:kind_of => [ String ]
|
|
236
|
+
)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
def svn_arguments(arg=nil)
|
|
240
|
+
set_or_return(
|
|
241
|
+
:svn_arguments,
|
|
242
|
+
arg,
|
|
243
|
+
:kind_of => [ String ]
|
|
244
|
+
)
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
def svn_info_args(arg=nil)
|
|
248
|
+
set_or_return(
|
|
249
|
+
:svn_arguments,
|
|
250
|
+
arg,
|
|
251
|
+
:kind_of => [ String ])
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
def scm_provider(arg=nil)
|
|
255
|
+
klass = if arg.kind_of?(String) || arg.kind_of?(Symbol)
|
|
256
|
+
lookup_provider_constant(arg)
|
|
257
|
+
else
|
|
258
|
+
arg
|
|
259
|
+
end
|
|
260
|
+
set_or_return(
|
|
261
|
+
:scm_provider,
|
|
262
|
+
klass,
|
|
263
|
+
:kind_of => [ Class ]
|
|
264
|
+
)
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
def svn_force_export(arg=nil)
|
|
268
|
+
set_or_return(
|
|
269
|
+
:svn_force_export,
|
|
270
|
+
arg,
|
|
271
|
+
:kind_of => [ TrueClass, FalseClass ]
|
|
272
|
+
)
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
def environment(arg=nil)
|
|
276
|
+
if arg.is_a?(String)
|
|
277
|
+
Chef::Log.info "Setting RAILS_ENV, RACK_ENV, and MERB_ENV to `#{arg}'"
|
|
278
|
+
Chef::Log.warn "[DEPRECATED] please modify your deploy recipe or attributes to set the environment using a hash"
|
|
279
|
+
arg = {"RAILS_ENV"=>arg,"MERB_ENV"=>arg,"RACK_ENV"=>arg}
|
|
280
|
+
end
|
|
281
|
+
set_or_return(
|
|
282
|
+
:environment,
|
|
283
|
+
arg,
|
|
284
|
+
:kind_of => [ Hash ]
|
|
285
|
+
)
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
# An array of paths, relative to your app's root, to be purged from a
|
|
289
|
+
# SCM clone/checkout before symlinking. Use this to get rid of files and
|
|
290
|
+
# directories you want to be shared between releases.
|
|
291
|
+
# Default: ["log", "tmp/pids", "public/system"]
|
|
292
|
+
def purge_before_symlink(arg=nil)
|
|
293
|
+
set_or_return(
|
|
294
|
+
:purge_before_symlink,
|
|
295
|
+
arg,
|
|
296
|
+
:kind_of => Array
|
|
297
|
+
)
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
# An array of paths, relative to your app's root, where you expect dirs to
|
|
301
|
+
# exist before symlinking. This runs after #purge_before_symlink, so you
|
|
302
|
+
# can use this to recreate dirs that you had previously purged.
|
|
303
|
+
# For example, if you plan to use a shared directory for pids, and you
|
|
304
|
+
# want it to be located in $APP_ROOT/tmp/pids, you could purge tmp,
|
|
305
|
+
# then specify tmp here so that the tmp directory will exist when you
|
|
306
|
+
# symlink the pids directory in to the current release.
|
|
307
|
+
# Default: ["tmp", "public", "config"]
|
|
308
|
+
def create_dirs_before_symlink(arg=nil)
|
|
309
|
+
set_or_return(
|
|
310
|
+
:create_dirs_before_symlink,
|
|
311
|
+
arg,
|
|
312
|
+
:kind_of => Array
|
|
313
|
+
)
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
# A Hash of shared/dir/path => release/dir/path. This attribute determines
|
|
317
|
+
# which files and dirs in the shared directory get symlinked to the current
|
|
318
|
+
# release directory, and where they go. If you have a directory
|
|
319
|
+
# $shared/pids that you would like to symlink as $current_release/tmp/pids
|
|
320
|
+
# you specify it as "pids" => "tmp/pids"
|
|
321
|
+
# Default {"system" => "public/system", "pids" => "tmp/pids", "log" => "log"}
|
|
322
|
+
def symlinks(arg=nil)
|
|
323
|
+
set_or_return(
|
|
324
|
+
:symlinks,
|
|
325
|
+
arg,
|
|
326
|
+
:kind_of => Hash
|
|
327
|
+
)
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
# A Hash of shared/dir/path => release/dir/path. This attribute determines
|
|
331
|
+
# which files in the shared directory get symlinked to the current release
|
|
332
|
+
# directory and where they go. Unlike map_shared_files, these are symlinked
|
|
333
|
+
# *before* any migration is run.
|
|
334
|
+
# For a rails/merb app, this is used to link in a known good database.yml
|
|
335
|
+
# (with the production db password) before running migrate.
|
|
336
|
+
# Default {"config/database.yml" => "config/database.yml"}
|
|
337
|
+
def symlink_before_migrate(arg=nil)
|
|
338
|
+
set_or_return(
|
|
339
|
+
:symlink_before_migrate,
|
|
340
|
+
arg,
|
|
341
|
+
:kind_of => Hash
|
|
342
|
+
)
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
# Callback fires before migration is run.
|
|
346
|
+
def before_migrate(arg=nil, &block)
|
|
347
|
+
arg ||= block
|
|
348
|
+
set_or_return(:before_migrate, arg, :kind_of => [Proc, String])
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
# Callback fires before symlinking
|
|
352
|
+
def before_symlink(arg=nil, &block)
|
|
353
|
+
arg ||= block
|
|
354
|
+
set_or_return(:before_symlink, arg, :kind_of => [Proc, String])
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
# Callback fires before restart
|
|
358
|
+
def before_restart(arg=nil, &block)
|
|
359
|
+
arg ||= block
|
|
360
|
+
set_or_return(:before_restart, arg, :kind_of => [Proc, String])
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
# Callback fires after restart
|
|
364
|
+
def after_restart(arg=nil, &block)
|
|
365
|
+
arg ||= block
|
|
366
|
+
set_or_return(:after_restart, arg, :kind_of => [Proc, String])
|
|
367
|
+
end
|
|
368
|
+
|
|
369
|
+
end
|
|
370
|
+
end
|
|
371
|
+
end
|