Giter Club home page Giter Club logo

nssm's People

Contributors

annih avatar axelrtgs avatar axos88 avatar dhoer avatar josqu4red avatar poblahblahblah avatar seancoyne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nssm's Issues

Version 3.0.1 is missing %WINDIR%

It appears that whatever was changed between version 3.0.0 and 3.0.1 has caused a break in the consul cookbook. I'm creating this issue so you can be aware. Here is the stacktrace:

Generated at 2017-07-13 10:03:17 -0700
Chef::Exceptions::MultipleFailures: Chef::Exceptions::MultipleFailures
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:240:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:321:in `block in run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:155:in `process_resource_requirements'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:133:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:77:in `block in run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:417:in `block in recipe_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:52:in `add_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:176:in `converge_by'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:412:in `recipe_eval'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:19:in `install_nssm'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:54:in `block in class_from_file'
(eval):2:in `block in action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `instance_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `compile_and_converge_action'
(eval):2:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/poise/files/halite_gem/poise/helpers/notifying_block.rb:69:in `notifying_block'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/consul/libraries/consul_service_windows.rb:25:in `action_enable'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:715:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `catch'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:749:in `converge_and_save'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:286:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:277:in `run_with_graceful_exit_option'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:253:in `block in run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/local_mode.rb:44:in `with_server_connectivity'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:236:in `run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application/client.rb:427:in `run_application'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:59:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/bin/chef-client:26:in `<top (required)>'
C:/opscode/chef/bin/chef-client:68:in `load'
C:/opscode/chef/bin/chef-client:68:in `<main>'

>>>> Caused by Chef::Exceptions::EnclosingDirectoryDoesNotExist: consul_service[consul] (consul::default line 29) had an error: Chef::Exceptions::EnclosingDirectoryDoesNotExist: nssm[consul] (C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/consul/libraries/consul_service_windows.rb line 36) had an error: Chef::Exceptions::EnclosingDirectoryDoesNotExist: remote_file[install nssm] (nssm::default line 18) had an error: Chef::Exceptions::EnclosingDirectoryDoesNotExist: Parent directory %WINDIR% does not exist.
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:240:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:321:in `block in run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:155:in `process_resource_requirements'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:133:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:77:in `block in run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:417:in `block in recipe_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:52:in `add_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:176:in `converge_by'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:412:in `recipe_eval'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:19:in `install_nssm'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:54:in `block in class_from_file'
(eval):2:in `block in action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `instance_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `compile_and_converge_action'
(eval):2:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/poise/files/halite_gem/poise/helpers/notifying_block.rb:69:in `notifying_block'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/consul/libraries/consul_service_windows.rb:25:in `action_enable'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:715:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `catch'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:749:in `converge_and_save'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:286:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:277:in `run_with_graceful_exit_option'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:253:in `block in run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/local_mode.rb:44:in `with_server_connectivity'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:236:in `run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application/client.rb:427:in `run_application'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:59:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/bin/chef-client:26:in `<top (required)>'
C:/opscode/chef/bin/chef-client:68:in `load'
C:/opscode/chef/bin/chef-client:68:in `<main>'

>>>> Caused by Chef::Exceptions::EnclosingDirectoryDoesNotExist: Parent directory %WINDIR% does not exist.
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:240:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:321:in `block in run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:155:in `process_resource_requirements'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:133:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:77:in `block in run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:417:in `block in recipe_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:52:in `add_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:176:in `converge_by'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:412:in `recipe_eval'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:19:in `install_nssm'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:54:in `block in class_from_file'
(eval):2:in `block in action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `instance_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `compile_and_converge_action'
(eval):2:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/poise/files/halite_gem/poise/helpers/notifying_block.rb:69:in `notifying_block'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/consul/libraries/consul_service_windows.rb:25:in `action_enable'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:715:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `catch'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:749:in `converge_and_save'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:286:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:277:in `run_with_graceful_exit_option'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:253:in `block in run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/local_mode.rb:44:in `with_server_connectivity'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:236:in `run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application/client.rb:427:in `run_application'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:59:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/bin/chef-client:26:in `<top (required)>'
C:/opscode/chef/bin/chef-client:68:in `load'
C:/opscode/chef/bin/chef-client:68:in `<main>'

Parameters dont get reset when no longer present

NSSM Set doesn't allow to set blank parameters the correct procedure is to use the reset command to set it back to default value (blank or other).

NSSM dump will give the parameters currently set on the service so perhaps we can match the parameters in the dump that dont exist in the resource parameter hash and call the reset command on them so that only the parameters in the resource hash are set and no lingering parameters remain.

this will have the effect of managing the entire nssm services parameters as a hole and making sure they match what we set.

I will try and make the code changes necessary for this to work and submit them in either a new PR or the existing one.

nssm resource is not idempotent

* execute[Set parameter Application to C:\Program Files\Wireshark\dumpcap.exe] action run
             - execute C:\Windows\nssm-2.24-94-g9c88bc1.exe set Sniff Application C:\Program Files\Wireshark\dumpcap.exe
* execute[Reset parameter AppExit to default with default subparameter] action run
             - execute C:\Windows\nssm-2.24-94-g9c88bc1.exe reset Sniff AppExit default

It always sets Application and AppExit parameter.

nssm 'Sniff' do
  program 'C:\Program Files\Wireshark\dumpcap.exe'
  args "-i 1 -w C:\\gs\\gs.pcap -b filesize:20480 -b files:250 -f \"port http\" -q"
  parameters(
    Description: 'Service for capturing HTTP trafic from service.',
    AppDirectory: 'C:\Program Files\Wireshark',
    AppStdout: "#{ENV['ProgramData']}/gs.log",
    AppStderr: "#{ENV['ProgramData']}/gs-error.log",
    AppRotateFiles: 1
  )
  start false
  action :install
end

NSSM create an Error event when dumping info

Hello,

Every time the nssm_service tries to dump service info using the nssm dump command, it creates an Error in the windows event log:

Failed to open registry key HKLM\SYSTEM\CurrentControlSet\Services_-MARKER-_: The data area passed to a system call is too small.

The dump command allow an undocumented extra argument to replace the original service name by the specified one. The load_current_value method of the nssm_service resource is leveraging this feature with a hardcoded _-MARKER-_ value to dump the parameters.
I think the implementation of this feature performs a lookup of the _-MARKER-_ service, which doesn't exist and trigger the event log creation.

I'll open a PR to fix that.

Cc. @aboten

Default recipe unzip is not idempotent and always runs

The windows_zipfile resource doesn't look like its idempotent so it always runs with every chef run triggering the notifications associated with the nssm resource on every run even if the file hasn't changed.

I am not too familiar with windows_zipfile so am unsure if theres a way to make it idempotent. if not perhaps consider Poise Zip which iirc is idempotent although im not too keen on adding another dependency to nssm cookbook.

output from chef run

  Recipe: nssm::default
    * windows_zipfile[download nssm] action unzip[2017-07-26T09:54:18-04:00] INFO: Processing windows_zipfile[download n
ssm] action unzip (nssm::default line 9)

      - unzip https://nssm.cc/ci/nssm-2.24-94-g9c88bc1.zip
      * remote_file[c:/chef/cache/nssm-2.24-94-g9c88bc1.zip] action create[2017-07-26T09:54:18-04:00] INFO: Processing r
emote_file[c:/chef/cache/nssm-2.24-94-g9c88bc1.zip] action create (c:/chef/cache/cookbooks/windows/resources/zipfile.rb
line 40)
 (up to date)
      * ruby_block[Unzipping] action run[2017-07-26T09:54:18-04:00] INFO: Processing ruby_block[Unzipping] action run (c
:/chef/cache/cookbooks/windows/resources/zipfile.rb line 54)
[2017-07-26T09:54:18-04:00] INFO: ruby_block[Unzipping] called

        - execute the ruby block Unzipping

[2017-07-26T09:54:18-04:00] INFO: windows_zipfile[download nssm] sending create action to remote_file[install nssm] (imm
ediate)
    * remote_file[install nssm] action create[2017-07-26T09:54:18-04:00] INFO: Processing remote_file[install nssm] acti
on create (nssm::default line 18)
 (up to date)
    * remote_file[install nssm] action create[2017-07-26T09:54:18-04:00] INFO: Processing remote_file[install nssm] acti
on create (nssm::default line 18)
 (up to date)
    - evaluate block and run any associated actions

NSSM wont install due to previous version running

Since upgrading to the latest version of the cookbook, it keeps trying to install a newer version of NSSM and since NSSM is currently running it gets an access denied error trying to overwrite the file failing the chef run.

install_nssm function on the nssm resource install action breaks why_run

I see in the code its set as '# TODO: Move this into a dedicated resource' but the install action triggers this on every run which i believe confuses why_run and makes it think something executed even if #25 is fixed and doesn't unzip on every run anymore. this behavior triggers the notification on every run.

i will try and refactor the install into a resource that can be called independently and see if it makes the issue better. Will submit a PR if its working correctly.

def install_nssm
    return if run_context.loaded_recipe? 'nssm::default'
    recipe_eval do
      run_context.include_recipe 'nssm::default'
    end
  end

nssm does not install on Windows 2008

Hello,

By default Windows 2008 R2 ships with Powershell version 2 (according to $PSVersionTable.PSVersion). Unfortunately, this version of PS does not support 'System.IO.Compression.FileSystem'. It doesn't support it until Powershell 4.5 according to a quick google search.

In order for this to work on 2008, I think one decent option is the expand.exe binary which appears to be available by default.

I can get a PR going with this change, although my question is whether we should use expand.exe everywhere or just for 2008?

Thoughts beyond that? I realize 2008 is very old at this point so it might not be worth supporting.

Create tests for reset parameters functionality

For tracking purposes,
We need to create some tests to properly test the reset parameter functionality and another test for service with no AppParameters to ensure we catch the bugs the last pull request fixes.

Version 3.0.1 breaking change & semantic versioning

Hello,

This issue is more a oneshot message than a fixable issue.
Version 3.0.1 changed the way parameters are escaped, this is a small change from #7 but it has several side effects that IMHO should have been catched and described in a "major" release.

Some cookbooks were handling escaping by themselves (sous-chefs/consul#455), which they have to revert now due to broken behavior.

Again, this is just a one shot discussion message. Feel free to close it whenever you want :)

End support for chef versions below 12.7

Hello,

According to chef-boneyard/windows@893d27b, the opscode windows cookbook now requires chef client version 12.7 or greater. In versions below 12.7 (such as 12.6, which chef-nssm's kitchen.yml is using) test kitchen fails with the following error: https://gist.github.com/poblahblahblah/0529a0efb5bfec3052bb4f1c35aafe18

I am working on a branch for chef-nssm that requires chef client version 12.7+ and I also am proposing that a dependency on the windows cookbook version 3.1.x is put in metadata.rb. Are these suggestions acceptable? Would this require a major version bump?

params is deprecated

Getting this warning message when using nssm. Looks like params will no longer be a valid parameter name for a resource.

       Deprecated features used!
         Property `params` of resource `nssm` overwrites an existing method. Please use a different property name. This will raise an exception in Chef 13. at 1 location:

NSSM resource doesn't support whyrun

in trying to resolve #14 i added a notification to a resource that would stop services and kill NSSM so it could overwrite but it didn't work because NSSM resource doesn't support why run

Java Heap error

Hi I am creating 100 nssm service services to run my application.

After running some time i am getting nssm stopped working.

Please help me how can i handle this.

Allow nssm installation to be controlled by an attribute

Hello,

We're already installing NSSM via a chocolatey package (https://chocolatey.org/packages/nssm) which makes the installation from zip an undesired action. Normally we're able to control this by either setting an attribute override or simply not using the default recipe, but due to https://github.com/dhoer/chef-nssm/blob/master/resources/service.rb#L26 we can't just consume the provider since it will force the install by including the default recipe.

I think the easiest path forward that breaks the least would be to adjust the default recipe to look for an attribute that if set to false will just skip nssm installation all together assuming that installation is being handled elsewhere.

I suppose there's also the other option of allowing the consumer to install via chocolatey package, but I don't like that option as much since it would require a dependency on the chocolatey cookbook and broadens the scope of dependencies.

I can get a PR going for this, although I wanted your input on it first.

Always trying to start service on every chef run

the code

service new_resource.servicename do # ~FC021 action [:start] only_if { new_resource.start } end

in the provider always executes on every run. my assumption is that it would only start the service on create and not every run, basically following the idempotence of the service existing and not the service being started.

i have worked around it by setting start to false and using a notification to follow the bahavior outlined above.

if it was intended to ensure the service was always running then feel free to close this issue with a comment letting me know. i just thought to bring it to your attention

When using a before notification Remote_file in install freaks out

because the zip file hasn't been extracted yet while checking to run the before notification the resource freaks out and crashes the chef run.

Need to add a test to catch this and also apply the fix which is adding the following line to the remote_file resource:

only_if {::File.exist?("#{Chef::Config[:file_cache_path]}/#{basename}/#{system}/nssm.exe")}

will make the change as soon as i'm done some more local testing.

NSSM doesnt allow AppParameters (args property) to be null or not present

If args property is not set or blank NSSM throws an error trying to create a service with no value for AppParameters. I have tested this on the commandline and if AppParameters is set but no value follows it or it is blank NSSM will throw an error by outputting the help text.

i have looked in the code and can see that

params = new_resource.parameters.merge(Application: new_resource.program, AppParameters: new_resource.args)

maps args property to AppParameters but then that will just execute a blank value and throw an error. the execute command has the following guard

not_if { current_resource && current_resource.parameters[key] == ::NSSM.prepare_parameter(value) }

but even if i try and set the value of args to 'AppParameters' to try and have the guard not execute for that value it will just set the args to 'AppParameters' which is unwanted behavior.

The only way i can think of fixing it is to split the merge into two lines and add an unless args = nil conditional to it so it doesn't get merged into the parameters unless its set.

i am hoping to see if anyone else has experienced the issue and if there's another resolution to it other than making this change. otherwise i will add it to my open PR or submit a new one.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.