diff --git a/.category b/.category new file mode 100644 index 0000000..19814b6 --- /dev/null +++ b/.category @@ -0,0 +1 @@ +Utilities diff --git a/.foodcritic b/.foodcritic new file mode 100644 index 0000000..c9f6c02 --- /dev/null +++ b/.foodcritic @@ -0,0 +1 @@ +[FC048] diff --git a/.gitignore b/.gitignore index 73955be..ec2a890 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.vagrant +Berksfile.lock *~ *# .#* @@ -5,11 +7,10 @@ .*.sw[a-z] *.un~ -Berksfile.lock +# Bundler Gemfile.lock -.vagrant -Vagrantfile -.bundle -.coverage -.kitchen -.kitchen.local.yml \ No newline at end of file +bin/* +.bundle/* + +.kitchen/ +.kitchen.local.yml diff --git a/.kitchen.yml b/.kitchen.yml index 27c9668..4f112bc 100644 --- a/.kitchen.yml +++ b/.kitchen.yml @@ -1,30 +1,38 @@ --- -driver_plugin: vagrant -driver_config: - require_chef_omnibus: true +driver: + name: vagrant + +provisioner: + name: chef_zero + solo_rb: + ssl_verify_mode: verify_peer platforms: + - name: ubuntu-12.04 + run_list: + - recipe[apt] + - name: ubuntu-14.04 + run_list: + - recipe[apt] suites: - - name: default - run_list: - - recipe[pdepend::default] - - name: pear + - name: default_pear run_list: - recipe[pdepend::default] attributes: pdepend: install_method: pear - - name: composer + - name: default_composer run_list: - recipe[pdepend::default] attributes: pdepend: install_method: composer - - name: phar + - name: default_phar run_list: - recipe[pdepend::default] attributes: pdepend: install_method: phar + diff --git a/.travis.yml b/.travis.yml index dfcac19..18875c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,19 +1,32 @@ -language: ruby +# install the stable release of the Chef Development Kit (ChefDK) +# use chef-current-precise to install the pre-release +addons: + apt: + sources: + - chef-stable-precise + packages: + - chefdk -rvm: - - 2.0.0 - - 2.1.0 +services: docker + +# https://docs.travis-ci.com/user/customizing-the-build/#Skipping-the-Installation-Step +install: true before_script: - - bundle exec berks install + - eval "$(/opt/chefdk/bin/chef shell-init bash)" # make ChefDK's Ruby the default + - chef --version + - chef exec berks install script: - - bundle exec rake travis + - chef exec rake travis branches: only: - master + - /^release\/.*$/ + - /^feature\/.*$/ + - /^bugfix\/.*$/ notifications: email: - - dev@escapestudios.com + - development@davidjoos.com diff --git a/Berksfile b/Berksfile index ab60e37..34fea21 100644 --- a/Berksfile +++ b/Berksfile @@ -1,3 +1,3 @@ -source 'https://supermarket.getchef.com' +source 'https://supermarket.chef.io' metadata diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6e6fa3b..4a235e9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,12 +4,12 @@ Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) -4. [Add tests for your changes](https://github.com/escapestudios-cookbooks/pdepend/blob/master/TESTING.md) +4. [Add tests for your changes](https://github.com/djoos-cookbooks/pdepend/blob/master/TESTING.md) 4. Push your changes to your feature branch (`git push origin my-new-feature`) -5. Create a new Pull Request (PR) +5. Create a new PR (Pull Request) ## Testing -Contributions will only be accepted if they are fully tested as specified in [TESTING.md](https://github.com/escapestudios-cookbooks/pdepend/blob/master/TESTING.md). +Contributions will only be accepted if they are fully tested as specified in [TESTING.md](https://github.com/djoos-cookbooks/pdepend/blob/master/TESTING.md). ## metadata.rb Please do not modify the version number in the metadata.rb; not all changes to the cookbook may be merged and released in the same version. We will handle the version updates during the release process. \ No newline at end of file diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 4a9c767..0000000 --- a/Gemfile +++ /dev/null @@ -1,22 +0,0 @@ -source 'https://rubygems.org' - -gem 'rake' - -group :lint do - gem 'rubocop', '~> 0.18' - gem 'foodcritic', '~> 3.0' -end - -group :unit, :integration do - gem 'berkshelf', '~> 3.0' -end - -group :unit do - gem 'chefspec', '~> 4.0' -end - -group :integration do - gem 'test-kitchen', '~> 1.2' - gem 'kitchen-vagrant', '~> 0.11' - gem 'serverspec', '~> 2.0' -end diff --git a/README.md b/README.md index 7614ca6..1e2e7c9 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,22 @@ -[![Build Status](https://secure.travis-ci.org/escapestudios-cookbooks/pdepend.png)](http://travis-ci.org/escapestudios-cookbooks/pdepend) +[![Build Status](https://travis-ci.org/djoos-cookbooks/pdepend.png)](http://travis-ci.org/djoos-cookbooks/pdepend) -Description -=========== +# pdepend cookbook + +## Description This cookbook provides an easy way to install pdepend, PHP_Depend. More information? http://pdepend.org/ -Requirements -============ +## Requirements -## Cookbooks: +### Cookbooks: * php * composer -## Platforms: +### Platforms: * Ubuntu * Debian @@ -26,8 +26,7 @@ Requirements * Scientific * Amazon -Attributes -========== +## Attributes * `node['pdepend']['install_method']` - Installation method, "pear", "composer" or "phar" defaults to "pear" * `node['pdepend']['version']` - The pdepend version that will be installed, defaults to "latest" @@ -37,22 +36,22 @@ Usage ===== 1) include `recipe[pdepend]` in a run list -2) - change the attributes - --- OR --- - override the attribute on a higher level (http://wiki.opscode.com/display/chef/Attributes#Attributes-AttributesPrecedence) +2) change the attributes +--- OR --- +[override the attribute on a higher level](http://wiki.opscode.com/display/chef/Attributes#Attributes-AttributesPrecedence) -References -========== +## References * [pdepend home page] (http://pdepend.org/) -License and Authors -=================== +## License and Authors + +Author: David Joos <development@davidjoos.com> +Copyright: 2016, David Joos Author: David Joos <david.joos@escapestudios.com> Author: Escape Studios Development <dev@escapestudios.com> -Copyright: 2013-2014, Escape Studios +Copyright: 2013-2015, Escape Studios Unless otherwise noted, all files are released under the MIT license, possible exceptions will contain licensing information in them. diff --git a/Rakefile b/Rakefile index 0f6c22f..02056cf 100644 --- a/Rakefile +++ b/Rakefile @@ -1,34 +1,222 @@ require 'rspec/core/rake_task' +require 'chef/cookbook/metadata' +require 'yaml' -# syntax/lint checks: RuboCop & Foodcritic -namespace :lint do +environment = ENV['ENVIRONMENT'] || '' + +# this module groups useful general commands together +module GeneralCommands + @logging = ENV['LOGGING'] || true + + def self.run(cmd, *expected_exitstatuses) + puts "+ #{cmd}" if @logging + output = `#{cmd} 2>&1` + puts output.gsub(/^/, '- ') if @logging + expected_exitstatuses << 0 if expected_exitstatuses.empty? + error_message = "ERROR: '#{cmd}' failed with exit status #{$CHILD_STATUS.exitstatus}" + raise StandardError, error_message unless [expected_exitstatuses].flatten.include?($CHILD_STATUS.exitstatus) + output + end + + def self.parse_metadata(metadata_file = 'metadata.rb') + metadata = Chef::Cookbook::Metadata.new + metadata.from_file(metadata_file) + + metadata + end +end + +# this module groups useful release commands together +module ReleaseCommands + def self.ensure_working_directory_state(allowed_modified_files = []) + modified_files = GeneralCommands.run('git diff --name-only', 0, 1) + modified_files = modified_files.split(/\n+/) + + return if allowed_modified_files.uniq.sort == modified_files.uniq.sort + raise '[RELEASE] Working directory is in an unexpected state' + end + + def self.verify_tag(should_exist = false) + return if GeneralCommands.run("git rev-parse -q --verify \"refs/tags/#{version}\"", 0, 1).empty? != should_exist + + suffix = if should_exist == true + 'does not exist' + else + 'already exists' + end + + raise "[RELEASE] Tag (#{version}) #{suffix}" + end + + def self.version + GeneralCommands.parse_metadata.version + end + + def self.name + GeneralCommands.parse_metadata.name + end + + def self.category + file_name = '.category' + + if File.exist?(file_name) + File.read(file_name).strip + else + '' + end + end + + def self.pre_publish + GitCommands.ensure_branch('master') + + ReleaseCommands.ensure_working_directory_state + end + + def self.publish_to_scm + ReleaseCommands.pre_publish + + ReleaseCommands.verify_tag(false) + + puts 'Creating an annotated tag...' + GitCommands.tag(ReleaseCommands.version) + + puts 'Push tag to remote repository...' + GitCommands.push_tags('origin', 'master', ReleaseCommands.version) + end + + def self.publish_to_chef_server + ReleaseCommands.pre_publish + + ReleaseCommands.verify_tag(true) + + puts 'Updating Berkshelf...' + BerkshelfCommands.update + + puts 'Packaging cookbooks (creating a single archive containing all of your required cookbooks)' + BerkshelfCommands.package('cookbooks.tar.gz') + + puts 'Installing packaged cookbooks into Chef Server' + BerkflowCommands.install('cookbooks.tar.gz') + end + + def self.publish_to_chef_supermarket + ReleaseCommands.pre_publish + + ReleaseCommands.verify_tag(true) + + cookbook_name = ReleaseCommands.name + cookbook_category = ReleaseCommands.category + + if cookbook_name.blank? || cookbook_category.blank? + puts 'Skipped sharing to the Chef Supermarket - cookbook name and/or category not set. Set it and run \'publish:chef:supermarket\' separately if needed.' + else + puts 'Sharing to the Chef Supermarket...' + + KnifeCommands.share(cookbook_name, cookbook_category) + end + end + + def self.release(environment = '') + raise 'You must specify an environment name.' if environment.blank? + + ReleaseCommands.ensure_working_directory_state + ReleaseCommands.verify_tag(true) + + puts "Applying the cookbook version locks to the '#{environment}'-Chef environment" + BerkshelfCommands.apply(environment) + end +end + +# this module groups useful berkshelf commands together +module BerkshelfCommands + def self.update + return if GeneralCommands.run('chef exec berks update', 0, 1) + raise '[BERKSHELF] Failed to update' + end + + def self.package(archive_filename = 'cookbooks.tar.gz') + raise '[BERKSHELF] You must specify an archive filename.' if archive_filename.blank? + + return if GeneralCommands.run("chef exec berks package #{archive_filename}", 0, 1) + raise "[BERKSHELF] Failed to create #{archive_filename}-archive" + end + + def self.apply(environment = '') + raise '[BERKSHELF] You must specify an environment.' if environment.blank? + + return unless GeneralCommands.run("chef exec berks apply #{environment}", 0, 1).empty? + raise "[BERKSHELF] Failed to apply the cookbook version locks to the '#{environment}'-Chef environment" + end +end + +# this module groups useful berkflow commands together +module BerkflowCommands + def self.install(archive_filename = 'cookbooks.tar.gz') + raise '[BERKFLOW] You must specify an archive filename.' if archive_filename.blank? + + return if /Done./ =~ GeneralCommands.run("chef exec blo in #{archive_filename}", 0, 1) + raise "[BERKFLOW] Failed to install packaged cookbooks #{archive_filename} into Chef Server" + end +end + +# this module groups useful git commands together +module GitCommands + def self.ensure_branch(branch = 'master') + raise '[GIT] You must specify a branch.' if branch.blank? + + return if /#{branch}/ =~ GeneralCommands.run('git rev-parse --abbrev-ref HEAD', 0, 1) + raise '[GIT] Currently working on unexpected branch' + end + + def self.tag(tag = '') + raise '[GIT] You must specify a tag.' if tag.blank? + + return if GeneralCommands.run("git tag -a #{tag} -m '#{tag}'", 0, 1) + raise '[GIT] Failed to tag' + end + + def self.push_tags(remote = 'origin', branch = 'master', tag = '') + raise '[GIT] You must specify a remote.' if remote.blank? + raise '[GIT] You must specify a branch.' if branch.blank? + raise '[GIT] You must specify a tag.' if tag.blank? + + return if GeneralCommands.run("git push #{remote} #{branch} --tags", 0, 1) + raise '[GIT] Failed to push to remote' + end +end + +# this module groups useful knife commands together +module KnifeCommands + def self.share(cookbook_name = '', cookbook_category = '') + raise '[KNIFE] Missing cookbook name.' if cookbook_name.blank? + raise '[KNIFE] Missing cookbook category.' if cookbook_category.blank? + + return if /Upload complete/ =~ GeneralCommands.run("chef exec knife supermarket share '#{cookbook_name}' '#{cookbook_category}' --cookbook-path ../", 0, 1) + raise "[KNIFE] Failed to publish the #{cookbook_name}-cookbook on the Chef Supermarket" + end +end + +namespace :style do require 'rubocop/rake_task' require 'foodcritic' - desc 'Run Ruby syntax/lint checks' + desc 'Run Ruby style checks (RuboCop)' RuboCop::RakeTask.new(:ruby) - desc 'Run Chef syntax/lint checks' - FoodCritic::Rake::LintTask.new(:chef) do |task| - task.options = { - :tags => ['~FC048'], - :fail_tags => ['any'] - } - end + desc 'Run Chef style checks (FoodCritic)' + FoodCritic::Rake::LintTask.new(:chef) end desc 'Run all syntax/lint checks' -task :lint => ['lint:ruby', 'lint:chef'] +task :style => ['style:ruby', 'style:chef'] -# unit testing: ChefSpec -desc 'Run RSpec and ChefSpec unit tests' -RSpec::Core::RakeTask.new(:unit) +desc 'Run ChefSpec tests' +RSpec::Core::RakeTask.new(:spec) -# integration testing: Test Kitchen namespace :integration do require 'kitchen' - desc 'Run Test Kitchen integration tests with Vagrant' + desc 'Run integration tests (Test Kitchen & Vagrant)' task :vagrant do Kitchen.logger = Kitchen.default_file_logger Kitchen::Config.new.instances.each do |instance| @@ -37,12 +225,45 @@ namespace :integration do end end +namespace :publish do + desc 'Publish to SCM' + task :scm do + ReleaseCommands.publish_to_scm + end + + namespace :chef do + desc 'Publish to Chef Server' + task :server do + ReleaseCommands.publish_to_chef_server + end + + desc 'Publish to Chef Supermarket' + task :supermarket do + ReleaseCommands.publish_to_chef_supermarket + end + end + + task :all => ['scm', 'chef:supermarket', 'chef:server'] +end + +desc 'Run lint checks' +task :lint => %w(style) + +desc 'Run unit tests' +task :unit => %w(spec) + +desc 'Run Travis CI tests' +task :travis => %w(lint unit) + desc 'Run all integration tests' -task :integration => ['integration:vagrant'] +task :integration => %w(integration:vagrant) -# Travic CI -desc 'Run tests on Travis CI' -task :travis => [:lint, :unit] +desc 'Publish' +task :publish => %w(publish:scm publish:chef:supermarket publish:chef:server) + +desc 'Release' +task :release do + ReleaseCommands.release(environment) +end -# the default rake task should just run it all -task :default => [:lint, :unit, :integration] +task :default => %w(lint unit integration) diff --git a/TESTING.md b/TESTING.md index f8ad216..7a39826 100644 --- a/TESTING.md +++ b/TESTING.md @@ -1,47 +1,25 @@ -Testing the cookbook -==================== +# Testing the cookbook -Contributions to this cookbook will only be accepted if all tests pass successfully: +Contributions to this cookbook will only be accepted if all tests pass successfully. -* Ruby syntax/lint checks: [RuboCop](http://batsov.com/rubocop/) -* Chef syntax/lint checks: [Foodcritic](http://acrmp.github.io/foodcritic/) -* Unit tests: [ChefSpec](http://code.sethvargo.com/chefspec/) -* Integration tests: [Test Kitchen](http://kitchen.ci/) +## Setting up the test environment -Setting up the test environment -------------------------------- +Install the latest stable version of [ChefDK](https://downloads.chef.io/chef-dk/). You'll need [Vagrant](http://www.vagrantup.com/downloads.html) and [VirtualBox](https://www.virtualbox.org/wiki/Downloads) for running integration tests. -Install the latest version of [Vagrant](http://www.vagrantup.com/downloads.html) and [VirtualBox](https://www.virtualbox.org/wiki/Downloads) (free) or [VMWare Fusion](http://www.vmware.com/products/fusion) (paid). +## Running tests -Clone the latest version of the cookbook from the repository. +### Style checks - git clone git@github.com:escapestudios-cookbooks/pdepend.git - cd pdepend +`chef exec rake style` -Install the gems used for testing: +### Unit tests - bundle install +`chef exec rake unit` -Install the berkshelf plugin for vagrant: +## Integration tests - vagrant plugin install vagrant-berkshelf +`chef exec rake integration` -Running syntax/lint checks --------------------------- +## All checks/tests - bundle exec rake lint - -Running unit tests ------------------- - - bundle exec rake unit - -Running integration tests -------------------------- - - bundle exec rake integration - -Running all checks/tests ------------------------- - - bundle exec rake \ No newline at end of file +`chef exec rake` diff --git a/Thorfile b/Thorfile index 9751d1b..620a241 100644 --- a/Thorfile +++ b/Thorfile @@ -45,7 +45,7 @@ class Default < Thor end def clean? - sh_with_excode('git diff --exit-code')[1] == 0 + (sh_with_excode('git diff --exit-code')[1]).zero? end def tag_version @@ -75,18 +75,16 @@ class Default < Thor def sh(cmd, dir = source_root, &block) out, code = sh_with_excode(cmd, dir, &block) - if code == 0 + if code.zero? out else - msg = nil + msg = if out.empty? + "Running `#{cmd}` failed. Run this command directly for more detailed output." + else + out + end - if out.empty? - msg = "Running `#{cmd}` failed. Run this command directly for more detailed output." - else - msg = out - end - - fail(msg) + raise(msg) end end @@ -96,7 +94,7 @@ class Default < Thor Dir.chdir(dir) do outbuf = `#{cmd}` - block.call(outbuf) if $CHILD_STATUS == 0 && block + yield(outbuf) if $CHILD_STATUS.zero? && block end [outbuf, $CHILD_STATUS] diff --git a/attributes/composer.rb b/attributes/composer.rb index 39b2bb0..d4a7d5a 100644 --- a/attributes/composer.rb +++ b/attributes/composer.rb @@ -2,7 +2,7 @@ # Cookbook Name:: pdepend # Attributes:: composer # -# Copyright 2013-2014, Escape Studios +# Copyright (c) 2016, David Joos # default['pdepend']['prefix'] = '/usr/bin' diff --git a/attributes/default.rb b/attributes/default.rb index dfebeaa..790df85 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -2,7 +2,7 @@ # Cookbook Name:: pdepend # Attributes:: default # -# Copyright 2013-2014, Escape Studios +# Copyright (c) 2016, David Joos # default['pdepend']['install_method'] = 'composer' diff --git a/attributes/phar.rb b/attributes/phar.rb index 0d5d433..9ed7775 100644 --- a/attributes/phar.rb +++ b/attributes/phar.rb @@ -2,7 +2,7 @@ # Cookbook Name:: pdepend # Attributes:: phar # -# Copyright 2013-2014, Escape Studios +# Copyright (c) 2016, David Joos # default['pdepend']['phar_url'] = 'http://static.pdepend.org/php/latest/pdepend.phar' diff --git a/chefignore b/chefignore deleted file mode 100644 index a6de142..0000000 --- a/chefignore +++ /dev/null @@ -1,96 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -## COMPILED ## -############## -a.out -*.o -*.pyc -*.so -*.com -*.class -*.dll -*.exe -*/rdoc/ - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/libraries/helpers.rb b/libraries/helpers.rb index 8d221de..881833c 100644 --- a/libraries/helpers.rb +++ b/libraries/helpers.rb @@ -2,7 +2,7 @@ # Cookbook Name:: pdepend # Library:: helpers # -# Copyright 2013-2015, Escape Studios +# Copyright (c) 2016, David Joos # # PDEPEND module diff --git a/metadata.rb b/metadata.rb index 1816442..830a9a1 100644 --- a/metadata.rb +++ b/metadata.rb @@ -1,15 +1,18 @@ name 'pdepend' -maintainer 'Escape Studios' -maintainer_email 'dev@escapestudios.com' +maintainer 'David Joos' +maintainer_email 'development@davidjoos.com' license 'MIT' description 'Installs/Configures pdepend' long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) version '1.1.0' -%w( debian ubuntu redhat centos fedora scientific amazon ).each do |os| +%w(debian ubuntu redhat centos fedora scientific amazon).each do |os| supports os end +source_url 'https://github.com/djoos-cookbooks/pdepend' if respond_to?(:source_url) +issues_url 'https://github.com/djoos-cookbooks/pdepend/issues' if respond_to?(:issues_url) + depends 'php' depends 'composer' diff --git a/recipes/composer.rb b/recipes/composer.rb index bb56af1..78df620 100644 --- a/recipes/composer.rb +++ b/recipes/composer.rb @@ -2,7 +2,7 @@ # Cookbook Name:: pdepend # Recipe:: composer # -# Copyright 2013-2014, Escape Studios +# Copyright (c) 2016, David Joos # include_recipe 'composer' @@ -17,11 +17,11 @@ end # figure out what version to install -if node['pdepend']['version'] != 'latest' - version = node['pdepend']['version'] -else - version = '*.*.*' -end +version = if node['pdepend']['version'] != 'latest' + node['pdepend']['version'] + else + '*.*.*' + end # composer.json template "#{pdepend_dir}/composer.json" do diff --git a/recipes/default.rb b/recipes/default.rb index 254e70b..fd33ced 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -2,7 +2,7 @@ # Cookbook Name:: pdepend # Recipe:: default # -# Copyright 2013-2014, Escape Studios +# Copyright (c) 2016, David Joos # case node['pdepend']['install_method'] diff --git a/recipes/pear.rb b/recipes/pear.rb index 1389ac1..cc74359 100644 --- a/recipes/pear.rb +++ b/recipes/pear.rb @@ -2,7 +2,7 @@ # Cookbook Name:: pdepend # Recipe:: pear # -# Copyright 2013-2014, Escape Studios +# Copyright (c) 2016, David Joos # include_recipe 'php' @@ -32,11 +32,11 @@ package = 'PHP_Depend' # upgrade when package is installed and latest version is required -if !(`pear list | grep #{package}`.empty?) && node['pdepend']['version'] == 'latest' - action = :upgrade -else - action = :install -end +action = if !`pear list | grep #{package}`.empty? && node['pdepend']['version'] == 'latest' + :upgrade + else + :install + end php_pear package do channel pearhub_chan.channel_name diff --git a/recipes/phar.rb b/recipes/phar.rb index 751154d..43fcce5 100644 --- a/recipes/phar.rb +++ b/recipes/phar.rb @@ -2,7 +2,7 @@ # Cookbook Name:: pdepend # Recipe:: phar # -# Copyright 2013-2014, Escape Studios +# Copyright (c) 2016, David Joos # remote_file "#{node['pdepend']['install_dir']}/pdepend" do