diff --git a/attributes/nodejs.rb b/attributes/nodejs.rb new file mode 100644 index 0000000..34fdaed --- /dev/null +++ b/attributes/nodejs.rb @@ -0,0 +1,4 @@ +default['NodeJS']['version'] = 8 +default['NodeJS']['working-dir'] = 'src/nodejs' +default['NodeJS']['exec_file'] = 'app.js' +default['NodeJS']['port'] = '8001' diff --git a/recipes/default.rb b/recipes/apache.rb similarity index 100% rename from recipes/default.rb rename to recipes/apache.rb diff --git a/recipes/nodejs.rb b/recipes/nodejs.rb new file mode 100644 index 0000000..86575b0 --- /dev/null +++ b/recipes/nodejs.rb @@ -0,0 +1,45 @@ +version = { + 8 => { + 'version' => '8.16.0', + 'url' => 'https://nodejs.org/dist/latest-v8.x/node-v8.16.0-linux-x64.tar.gz', + 'checksum' => 'b391450e0fead11f61f119ed26c713180cfe64b363cd945bac229130dfab64fa' + }, + 10 => { + 'version' => '10.15.3', + 'url' => 'https://nodejs.org/dist/latest-v10.x/node-v10.15.3-linux-x64.tar.gz', + 'checksum' => '6c35b85a7cd4188ab7578354277b2b2ca43eacc864a2a16b3669753ec2369d52' + } +} + +unless node['node']['working-dir'][0] == '/' + node.override['node']['working-dir'] = "#{node['working-dir']}/#{node['node']['working-dir']}" +end + +unless node['node']['version'] + node.default['node']['version'] = 8 +end + +unless version.key?(node['node']['version']) + raise <<~EOH + Unsupported NodeJS version #{node['node']['version']}. + Supports #{version.keys}. + EOH +end + +set_version = version[node['node']['version']] + +node.default['nodejs']['install_method'] = 'binary' +node.default['nodejs']['version'] = set_version['version'] +node.default['nodejs']['binary']['url'] = set_version['url'] +node.default['nodejs']['binary']['checksum'] = set_version['checksum'] + +include_recipe "nodejs" + +execute 'Install NPM package.json' do + cwd node['node']['working-dir'] + command "npm --prefix \"#{node['node']['working-dir']}\" install" +end + +directory "/var/log/node/#{node['app']['name']}" do + recursive true +end