diff --git a/.kitchen.yml b/.kitchen.yml index 82f7ddc..4e6e401 100644 --- a/.kitchen.yml +++ b/.kitchen.yml @@ -61,3 +61,14 @@ suites: nodejs: npm: install_method: source +- name: npm_packages + run_list: recipe[nodejs] + attributes: + nodejs: + npm_packages: + - name: express + - name: socket.io + version: 1.0.4 + - name: express + action: uninstall + diff --git a/recipes/default.rb b/recipes/default.rb index efdb22d..dc0bc55 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -20,3 +20,14 @@ include_recipe 'nodejs::nodejs' include_recipe 'nodejs::npm' + +node['nodejs']['npm_packages'].each do |pkg| + f = nodejs_npm pkg['name'] do + action :nothing + end + pkg.reject { |k, _v| k == 'name' || k == 'action' }.each do |key, value| + f.send(key, value) + end + action = pkg.key?('action') ? pkg['action'] : :install + f.action(action) +end if node['nodejs'].key?('npm_packages')