chake 0.20 → 0.81

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/.ackrc +2 -0
  3. data/.gitignore +22 -0
  4. data/.gitlab-ci.yml +24 -0
  5. data/.manifest +65 -0
  6. data/.rubocop.yml +55 -0
  7. data/.rubocop_todo.yml +40 -0
  8. data/ChangeLog.md +36 -0
  9. data/README.chef.md +70 -0
  10. data/README.itamae.md +58 -0
  11. data/README.md +118 -85
  12. data/README.shell.md +30 -0
  13. data/Rakefile +36 -10
  14. data/bin/chake +2 -2
  15. data/chake.gemspec +16 -16
  16. data/examples/test/.ssh_config +4 -0
  17. data/examples/test/Rakefile +1 -1
  18. data/examples/test/Vagrantfile +6 -0
  19. data/examples/test/config.rb +4 -4
  20. data/examples/test/cookbooks/basics/recipes/default.rb +1 -0
  21. data/examples/test/cookbooks/example/files/default/test +1 -0
  22. data/examples/test/cookbooks/example/files/{host-homer → host-lemur}/test.asc +0 -0
  23. data/lib/chake.rb +110 -154
  24. data/lib/chake/bootstrap/chef/01_installed.sh +4 -0
  25. data/lib/chake/bootstrap/{01_debian.sh → chef/02_debian.sh} +0 -0
  26. data/lib/chake/bootstrap/{99_unsupported.sh → chef/99_unsupported.sh} +0 -0
  27. data/lib/chake/config.rb +2 -7
  28. data/lib/chake/config_manager.rb +89 -0
  29. data/lib/chake/config_manager/chef.rb +35 -0
  30. data/lib/chake/config_manager/itamae.rb +57 -0
  31. data/lib/chake/config_manager/shell.rb +34 -0
  32. data/lib/chake/config_manager/skel/chef/Rakefile +1 -0
  33. data/lib/chake/config_manager/skel/chef/config.rb +4 -0
  34. data/lib/chake/config_manager/skel/chef/cookbooks/basics/recipes/default.rb +1 -0
  35. data/lib/chake/config_manager/skel/chef/nodes.yaml +3 -0
  36. data/lib/chake/config_manager/skel/itamae/Rakefile +1 -0
  37. data/lib/chake/config_manager/skel/itamae/cookbooks/basics/default.rb +1 -0
  38. data/lib/chake/config_manager/skel/itamae/nodes.yaml +3 -0
  39. data/lib/chake/config_manager/skel/itamae/roles/basic.rb +1 -0
  40. data/lib/chake/config_manager/skel/shell/Rakefile +1 -0
  41. data/lib/chake/config_manager/skel/shell/nodes.yaml +3 -0
  42. data/lib/chake/connection.rb +83 -0
  43. data/lib/chake/{backend → connection}/local.rb +2 -8
  44. data/lib/chake/{backend → connection}/ssh.rb +6 -14
  45. data/lib/chake/node.rb +49 -29
  46. data/lib/chake/readline.rb +6 -10
  47. data/lib/chake/version.rb +1 -1
  48. data/lib/chake/wipe.rb +18 -0
  49. data/man/.gitignore +2 -0
  50. data/man/Rakefile +28 -14
  51. data/man/readme2man.sed +5 -5
  52. data/spec/chake/backend/local_spec.rb +5 -6
  53. data/spec/chake/backend/ssh_spec.rb +8 -10
  54. data/spec/chake/backend_spec.rb +1 -2
  55. data/spec/chake/config_manager/chef_spec.rb +38 -0
  56. data/spec/chake/config_manager/itamae_spec.rb +87 -0
  57. data/spec/chake/config_manager/shell_spec.rb +54 -0
  58. data/spec/chake/config_manager_spec.rb +23 -0
  59. data/spec/chake/node_spec.rb +38 -15
  60. data/spec/spec_helper.rb +37 -17
  61. metadata +65 -39
  62. data/coverage/assets/0.10.0/application.css +0 -799
  63. data/coverage/assets/0.10.0/application.js +0 -34783
  64. data/coverage/assets/0.10.0/colorbox/border.png +0 -0
  65. data/coverage/assets/0.10.0/colorbox/controls.png +0 -0
  66. data/coverage/assets/0.10.0/colorbox/loading.gif +0 -0
  67. data/coverage/assets/0.10.0/colorbox/loading_background.png +0 -0
  68. data/coverage/assets/0.10.0/favicon_green.png +0 -0
  69. data/coverage/assets/0.10.0/favicon_red.png +0 -0
  70. data/coverage/assets/0.10.0/favicon_yellow.png +0 -0
  71. data/coverage/assets/0.10.0/loading.gif +0 -0
  72. data/coverage/assets/0.10.0/magnify.png +0 -0
  73. data/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  74. data/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  75. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  76. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  77. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  78. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  79. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  80. data/coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  81. data/coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  82. data/coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  83. data/coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  84. data/coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  85. data/coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  86. data/coverage/index.html +0 -2326
  87. data/lib/chake/backend.rb +0 -80
@@ -1,80 +0,0 @@
1
- module Chake
2
-
3
- class Backend < Struct.new(:node)
4
-
5
- class CommandFailed < Exception
6
- end
7
-
8
- def scp
9
- ['scp']
10
- end
11
-
12
- def scp_dest
13
- ''
14
- end
15
-
16
- def rsync
17
- ['rsync']
18
- end
19
-
20
- def rsync_dest
21
- node.path + '/'
22
- end
23
-
24
- def run(cmd)
25
- printf "%#{Node.max_node_name_length}s: $ %s\n", node.hostname, cmd
26
- io = IO.popen(command_runner + ['/bin/sh'], mode='w+', eer: [:child, :out])
27
- io.write(cmd)
28
- io.close_write
29
- io.each_line do |line|
30
- printf "%#{Node.max_node_name_length}s: %s\n", node.hostname, line.strip
31
- end
32
- io.close
33
- if $?
34
- status = $?.exitstatus
35
- if status != 0
36
- raise CommandFailed.new([node.hostname, 'FAILED with exit status %d' % status].join(': '))
37
- end
38
- end
39
- end
40
-
41
- def run_shell
42
- system(*shell_command)
43
- end
44
-
45
- def run_as_root(cmd)
46
- if node.remote_username == 'root'
47
- run(cmd)
48
- else
49
- run('sudo ' + cmd)
50
- end
51
- end
52
-
53
- def to_s
54
- self.class.backend_name
55
- end
56
-
57
- def skip?
58
- false
59
- end
60
-
61
- def self.backend_name
62
- name.split("::").last.downcase
63
- end
64
-
65
- def self.inherited(subclass)
66
- @backends ||= []
67
- @backends << subclass
68
- end
69
-
70
- def self.get(name)
71
- backend = @backends.find { |b| b.backend_name == name }
72
- backend || raise(ArgumentError.new("Invalid backend name: #{name}"))
73
- end
74
-
75
- end
76
-
77
- end
78
-
79
- require 'chake/backend/ssh'
80
- require 'chake/backend/local'