automateit 0.80116 → 0.80624

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data.tar.gz.sig +3 -1
  2. data/CHANGES.txt +12 -0
  3. data/Hoe.rake +3 -1
  4. data/Manifest.txt +58 -5
  5. data/README.txt +5 -9
  6. data/Rakefile +26 -105
  7. data/TODO.txt +50 -48
  8. data/bin/ai +0 -0
  9. data/bin/aifield +0 -0
  10. data/bin/aissh +0 -0
  11. data/bin/aitag +0 -0
  12. data/bin/automateit +0 -0
  13. data/lib/automateit.rb +0 -0
  14. data/lib/automateit/account_manager/etc.rb +0 -0
  15. data/lib/automateit/account_manager/nscd.rb +1 -0
  16. data/lib/automateit/address_manager/bsd.rb +0 -0
  17. data/lib/automateit/address_manager/freebsd.rb +0 -0
  18. data/lib/automateit/address_manager/openbsd.rb +0 -0
  19. data/lib/automateit/address_manager/portable.rb +0 -0
  20. data/lib/automateit/address_manager/sunos.rb +0 -0
  21. data/lib/automateit/constants.rb +4 -3
  22. data/lib/automateit/interpreter.rb +2 -4
  23. data/lib/automateit/platform_manager/windows.rb +0 -0
  24. data/lib/automateit/plugin/driver.rb +0 -0
  25. data/lib/automateit/root.rb +1 -1
  26. data/lib/automateit/shell_manager.rb +0 -0
  27. data/lib/automateit/shell_manager/portable.rb +8 -2
  28. data/lib/automateit/shell_manager/which_base.rb +0 -0
  29. data/lib/automateit/shell_manager/which_unix.rb +0 -0
  30. data/lib/automateit/shell_manager/which_windows.rb +0 -0
  31. data/lib/ext/object.rb +2 -2
  32. data/lib/inactive_support/core_ext/time/conversions.rb +4 -2
  33. data/misc/index_gem_repository.rb +0 -0
  34. data/misc/setup_egg.rb +0 -0
  35. data/misc/setup_gem_dependencies.sh +0 -0
  36. data/misc/setup_rubygems.sh +0 -0
  37. data/spec/extras/automateit_service_sysv_test +0 -0
  38. data/spec/extras/scratch.rb +0 -0
  39. data/spec/extras/simple_recipe.rb +0 -0
  40. data/spec/integration/account_manager_spec.rb +0 -0
  41. data/spec/integration/address_manager_portable_spec.rb +0 -0
  42. data/spec/integration/cli_spec.rb +0 -0
  43. data/spec/integration/platform_manager_spec.rb +0 -0
  44. data/spec/integration/shell_manager_spec.rb +24 -0
  45. data/spec/unit/edit_manager_spec.rb +0 -0
  46. data/spec/unit/field_manager_spec.rb +0 -0
  47. data/spec/unit/interpreter_spec.rb +0 -0
  48. data/spec/unit/object_spec.rb +2 -2
  49. data/spec/unit/plugins_spec.rb +0 -0
  50. data/spec/unit/tag_manager_spec.rb +0 -0
  51. metadata +131 -130
  52. metadata.gz.sig +0 -0
  53. data/lib/automateit/package_manager.rb.orig +0 -256
  54. data/misc/setup_ruby-dbi.rb +0 -24
  55. data/spec/integration/package_manager_spec.rb.orig +0 -123
data.tar.gz.sig CHANGED
@@ -1 +1,3 @@
1
- H�R};�f\��H�k�/��ݼb��o��j�;�O��z��iq ��2 ��5Q�R�8$���Y(ɷ���N���������]
1
+ ��R���F"Ґ���B��]�0Dr;8�D��4*l�w��v���֙��a$}u'����OF%�_NV.�����v��zuվdKCrI�溔˿ǡ��B��|s ����2���e���̳�/�����C�y�� �/#�|�7`Y ��0�8%/I*3hD
2
+ ��ك}��AdM��A��lE
3
+ d b�IOH��eDI�b���M����݂����ȵ�>�U�M"2�D%�-r��IB�Pddp' 6�Kcib*ř!
@@ -1,3 +1,15 @@
1
+ 0.80624:
2
+ Date: Tue, 24 Jun 2008 23:13:35 -0700
3
+ Desc:
4
+ - Fixed collision of time conversion methods when loading AutomateIt into Rails.
5
+ - Improved documentation, reworked Rakefile, updated TODO.txt.
6
+
7
+ 0.80607:
8
+ Date: Fri, 06 Jun 2008 23:13:56 -0700
9
+ Desc:
10
+ - (%) Fixed ShellManager#rm and ShellManager#mv, can now remove and move invalid symlinks.
11
+ - Improved Object#unique_methods, it now returns an array of symbols.
12
+
1
13
  0.80116:
2
14
  Date: Wed, 16 Jan 2008 23:55:44 -0800
3
15
  Desc:
data/Hoe.rake CHANGED
@@ -5,6 +5,8 @@ $LOAD_PATH.unshift('lib')
5
5
  require 'automateit'
6
6
  @interpreter = AutomateIt.new
7
7
 
8
+ ENV["NODOT"] = "NODOT" # Never generate those crappy rdoc diagrams
9
+
8
10
  HoeInclude = {
9
11
  :executables => Dir['bin/*'].reject{|t|t.match(/~/)}.map{|t|File.basename(t)},
10
12
  :files => (%w(add2path.sh gpl.txt CHANGES.txt Hoe.rake Manifest.txt Rakefile README.txt TESTING.txt TODO.txt TUTORIAL.txt) + FileList["{bin,examples,docs,helpers,lib,misc,spec}/**/*"]).to_a.reject{|t| File.directory?(t)},
@@ -31,7 +33,7 @@ Hoe.new("AutomateIt", AutomateIt::VERSION.to_s) do |s|
31
33
  s.url = "http://automateit.org/"
32
34
  s.spec_extras = {
33
35
  :platform => Gem::Platform::RUBY,
34
- :rdoc_options => %w(--main README.txt --promiscuous --accessor class_inheritable_accessor=R --title) << title << %w(lib docs),
36
+ :rdoc_options => %w(--op doc --main README.txt --promiscuous --accessor class_inheritable_accessor=R --inline-source --line-numbers --title) << title << %w(lib),
35
37
  :extra_rdoc_files => FileList[%w(README.txt TUTORIAL.txt TESTING.txt), "docs/*.txt"],
36
38
  }
37
39
  s.spec_extras.merge!(HoeInclude)
@@ -6,13 +6,14 @@ Rakefile
6
6
  TESTING.txt
7
7
  TODO.txt
8
8
  TUTORIAL.txt
9
+ add2path.sh
9
10
  bin/ai
10
11
  bin/aifield
12
+ bin/aissh
11
13
  bin/aitag
12
14
  bin/automateit
13
15
  docs/friendly_errors.txt
14
16
  docs/previews.txt
15
- env.sh
16
17
  examples/basic/Rakefile
17
18
  examples/basic/config/automateit_env.rb
18
19
  examples/basic/config/fields.yml
@@ -25,24 +26,40 @@ examples/basic/recipes/README.txt
25
26
  examples/basic/recipes/install.rb
26
27
  examples/basic/recipes/uninstall.rb
27
28
  gpl.txt
29
+ helpers/cpan_wrapper.pl
30
+ helpers/which.cmd
28
31
  lib/automateit.rb
29
32
  lib/automateit/account_manager.rb
30
- lib/automateit/account_manager/linux.rb
31
- lib/automateit/account_manager/portable.rb
33
+ lib/automateit/account_manager/base.rb
34
+ lib/automateit/account_manager/etc.rb
35
+ lib/automateit/account_manager/nscd.rb
36
+ lib/automateit/account_manager/passwd_expect.rb
37
+ lib/automateit/account_manager/passwd_pty.rb
38
+ lib/automateit/account_manager/posix.rb
32
39
  lib/automateit/address_manager.rb
40
+ lib/automateit/address_manager/base.rb
41
+ lib/automateit/address_manager/bsd.rb
42
+ lib/automateit/address_manager/freebsd.rb
33
43
  lib/automateit/address_manager/linux.rb
44
+ lib/automateit/address_manager/openbsd.rb
34
45
  lib/automateit/address_manager/portable.rb
46
+ lib/automateit/address_manager/sunos.rb
35
47
  lib/automateit/cli.rb
36
48
  lib/automateit/common.rb
37
49
  lib/automateit/constants.rb
50
+ lib/automateit/download_manager.rb
38
51
  lib/automateit/edit_manager.rb
39
52
  lib/automateit/error.rb
40
53
  lib/automateit/field_manager.rb
41
54
  lib/automateit/interpreter.rb
42
55
  lib/automateit/package_manager.rb
43
56
  lib/automateit/package_manager/apt.rb
57
+ lib/automateit/package_manager/cpan.rb
58
+ lib/automateit/package_manager/dpkg.rb
44
59
  lib/automateit/package_manager/egg.rb
45
60
  lib/automateit/package_manager/gem.rb
61
+ lib/automateit/package_manager/pear.rb
62
+ lib/automateit/package_manager/pecl.rb
46
63
  lib/automateit/package_manager/portage.rb
47
64
  lib/automateit/package_manager/yum.rb
48
65
  lib/automateit/platform_manager.rb
@@ -51,7 +68,9 @@ lib/automateit/platform_manager/debian.rb
51
68
  lib/automateit/platform_manager/freebsd.rb
52
69
  lib/automateit/platform_manager/gentoo.rb
53
70
  lib/automateit/platform_manager/lsb.rb
71
+ lib/automateit/platform_manager/openbsd.rb
54
72
  lib/automateit/platform_manager/struct.rb
73
+ lib/automateit/platform_manager/sunos.rb
55
74
  lib/automateit/platform_manager/uname.rb
56
75
  lib/automateit/platform_manager/windows.rb
57
76
  lib/automateit/plugin.rb
@@ -66,8 +85,13 @@ lib/automateit/service_manager/rc_update.rb
66
85
  lib/automateit/service_manager/sysv.rb
67
86
  lib/automateit/service_manager/update_rcd.rb
68
87
  lib/automateit/shell_manager.rb
88
+ lib/automateit/shell_manager/base_link.rb
89
+ lib/automateit/shell_manager/link.rb
69
90
  lib/automateit/shell_manager/portable.rb
70
- lib/automateit/shell_manager/unix.rb
91
+ lib/automateit/shell_manager/symlink.rb
92
+ lib/automateit/shell_manager/which_base.rb
93
+ lib/automateit/shell_manager/which_unix.rb
94
+ lib/automateit/shell_manager/which_windows.rb
71
95
  lib/automateit/tag_manager.rb
72
96
  lib/automateit/tag_manager/struct.rb
73
97
  lib/automateit/tag_manager/tag_parser.rb
@@ -77,22 +101,45 @@ lib/automateit/template_manager/base.rb
77
101
  lib/automateit/template_manager/erb.rb
78
102
  lib/ext/metaclass.rb
79
103
  lib/ext/object.rb
104
+ lib/ext/shell_escape.rb
80
105
  lib/hashcache.rb
81
106
  lib/helpful_erb.rb
107
+ lib/inactive_support.rb
108
+ lib/inactive_support/basic_object.rb
109
+ lib/inactive_support/clean_logger.rb
110
+ lib/inactive_support/core_ext/array/extract_options.rb
111
+ lib/inactive_support/core_ext/blank.rb
112
+ lib/inactive_support/core_ext/class/attribute_accessors.rb
113
+ lib/inactive_support/core_ext/class/inheritable_attributes.rb
114
+ lib/inactive_support/core_ext/enumerable.rb
115
+ lib/inactive_support/core_ext/hash/keys.rb
116
+ lib/inactive_support/core_ext/module/aliasing.rb
117
+ lib/inactive_support/core_ext/numeric/time.rb
118
+ lib/inactive_support/core_ext/string/inflections.rb
119
+ lib/inactive_support/core_ext/symbol.rb
120
+ lib/inactive_support/core_ext/time/conversions.rb
121
+ lib/inactive_support/duration.rb
122
+ lib/inactive_support/inflections.rb
123
+ lib/inactive_support/inflector.rb
82
124
  lib/nested_error.rb
125
+ lib/nitpick.rb
83
126
  lib/queued_logger.rb
84
127
  lib/tempster.rb
85
128
  misc/index_gem_repository.rb
86
129
  misc/setup_egg.rb
87
130
  misc/setup_gem_dependencies.sh
88
131
  misc/setup_rubygems.sh
132
+ spec/breaker.rb
89
133
  spec/extras/automateit_service_sysv_test
90
134
  spec/extras/scratch.rb
91
135
  spec/extras/simple_recipe.rb
136
+ spec/integration/account_manager_nscd_spec.rb
92
137
  spec/integration/account_manager_spec.rb
93
- spec/integration/address_manager_linux_spec.rb
94
138
  spec/integration/address_manager_portable_spec.rb
139
+ spec/integration/address_manager_spec.rb
95
140
  spec/integration/cli_spec.rb
141
+ spec/integration/download_spec.rb
142
+ spec/integration/edit_manager_spec.rb
96
143
  spec/integration/examples_spec.rb
97
144
  spec/integration/examples_spec_editor.rb
98
145
  spec/integration/package_manager_spec.rb
@@ -100,12 +147,18 @@ spec/integration/platform_manager_spec.rb
100
147
  spec/integration/service_manager_sysv_spec.rb
101
148
  spec/integration/shell_manager_spec.rb
102
149
  spec/integration/template_manager_erb_spec.rb
150
+ spec/integration/tempster_spec.rb
103
151
  spec/spec_helper.rb
152
+ spec/unit/address_manager_spec.rb
104
153
  spec/unit/edit_manager_spec.rb
105
154
  spec/unit/field_manager_spec.rb
106
155
  spec/unit/hashcache_spec.rb
107
156
  spec/unit/interpreter_spec.rb
157
+ spec/unit/nested_error_spec.rb
158
+ spec/unit/object_spec.rb
159
+ spec/unit/package_manager_spec.rb
108
160
  spec/unit/platform_manager_spec.rb
109
161
  spec/unit/plugins_spec.rb
162
+ spec/unit/shell_escape_spec.rb
110
163
  spec/unit/tag_manager_spec.rb
111
164
  spec/unit/template_manager_erb_spec.rb
data/README.txt CHANGED
@@ -2,25 +2,21 @@
2
2
 
3
3
  <em>AutomateIt is an open source tool for automating the setup and maintenance of servers, applications and their dependencies.</em>
4
4
 
5
- Information about AutomateIt is best read in the following order:
6
5
  1. http://AutomateIt.org -- website explaining what it is and why it's useful
7
6
  2. Screenshots[http://AutomateIt.org/screenshots] -- quick tour of sample AutomateIt code
8
7
  3. TUTORIAL.txt[link:files/TUTORIAL_txt.html] -- hands-on tutorial
9
- 4. TESTING.txt[link:files/TESTING_txt.html] -- instructions on running the AutomateIt self-test
10
- 5. Links on the left provide technical documentation for specific classes and methods
11
8
 
12
- === Quick links
9
+ === Frequently-used commands
13
10
 
14
- Commands, run these with <tt>--help</tt> for help:
11
+ Execute these from a terminal, use <tt>--help</tt> option for help:
15
12
  * +automateit+ or +ai+ -- Run a recipe or create a project.
16
13
  * +aitag+ -- Query project's tags.
17
14
  * +aifield+ -- Query project's fields.
18
15
 
19
- Execution:
16
+ === Frequently-used classes
17
+
20
18
  * AutomateIt::Interpreter -- Runs AutomateIt commands.
21
19
  * AutomateIt::Project -- Collection of related recipes, tags, fields and custom plugins.
22
-
23
- Plugins:
24
20
  * AutomateIt::AccountManager -- Manipulates users and groups.
25
21
  * AutomateIt::AddressManager -- Manipulates host's network addresses.
26
22
  * AutomateIt::DownloadManager -- Downloads files.
@@ -35,7 +31,7 @@ Plugins:
35
31
 
36
32
  === Legal
37
33
 
38
- Copyright (C) 2007 Igal Koshevoy (igal@pragmaticraft.com)
34
+ Copyright (C) 2007-2008 Igal Koshevoy (igal@pragmaticraft.com)
39
35
 
40
36
  AutomateIt is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
41
37
 
data/Rakefile CHANGED
@@ -113,28 +113,6 @@ task :loc => ["loc:count", "loc:diff", "loc:churn", "loc:sloc"]
113
113
 
114
114
  #---[ RubyGems ]--------------------------------------------------------
115
115
 
116
- ARCHIVE_PATH = "../gem_archive"
117
- desc "Regenerate Gem"
118
- task :regem do
119
- has_archive = File.directory?(ARCHIVE_PATH)
120
- puts "WARNING: Archive of previously released gems at '#{ARCHIVE_PATH}' is not available, do not upload without these." unless has_archive
121
- rm_r Dir["pkg/*"]
122
- mkdir_p "pkg/pub/gems"
123
- if has_archive && !Dir["#{ARCHIVE_PATH}/*.gem"].empty?
124
- cp FileList["#{ARCHIVE_PATH}/*.gem"].to_a, "pkg/pub/gems", :preserve => true
125
- end
126
- Rake::Task[:gem].invoke
127
- cp Dir["pkg/*.gem"], "pkg/pub/gems", :preserve => true
128
- cp Dir["pkg/*.gem"], "#{ARCHIVE_PATH}", :preserve => true if has_archive
129
- sh "cd pkg/pub && ruby ../../misc/index_gem_repository.rb" if has_archive
130
- end
131
-
132
- desc "Populate gem_archive"
133
- task :download_gem_archive do
134
- mkdir_p ARCHIVE_PATH unless File.exist?(ARCHIVE_PATH)
135
- sh "rsync -cvaxz igal@pythia.kattare.com:automateit_org/pub/gems/ #{ARCHIVE_PATH}"
136
- end
137
-
138
116
  desc "Generate manifest"
139
117
  task :manifest do
140
118
  hoe(:manifest)
@@ -165,25 +143,29 @@ namespace :gem do
165
143
  end
166
144
 
167
145
  desc "Create a gem"
168
- task :gem do
146
+ task :gem => [:manifest] do
169
147
  hoe(:gem)
170
148
  end
171
149
 
172
- desc "Publish to RubyForge"
173
- task :publish do
150
+ desc "Release gem to RubyForge"
151
+ task :release do
174
152
  automateit # Loads libraries
175
153
  hoe("release VERSION=#{AutomateIt::VERSION}")
176
- Rake::Task[:after].invoke
154
+ end
155
+
156
+ desc "Public docs to RubyForge"
157
+ task :publish_docs do
158
+ hoe("publish_docs")
177
159
  end
178
160
 
179
161
  desc "Tag a stable release"
180
162
  task :tag do
181
- automateit
163
+ automateit # Loads libraries
182
164
  sh "hg tag #{AutomateIt::VERSION}"
183
165
  sh "hg tag -f stable"
184
166
  end
185
167
 
186
- desc "Push a stable release"
168
+ desc "Push a stable release to local repo for uploading"
187
169
  task :push do
188
170
  sh "hg push -r stable ../app_stable"
189
171
  end
@@ -208,10 +190,12 @@ namespace :install do
208
190
  end
209
191
 
210
192
  desc "Install Gem from RubyForge without docs, removing existing Gem first"
211
- task :rf do
193
+ task :rubyforge do
212
194
  install_wrapper "http://gems.rubyforge.org"
213
195
  end
214
196
 
197
+ task :rf => :rubyforge
198
+
215
199
  desc "Install Gem from website without docs, removing existing Gem first"
216
200
  task :site do
217
201
  install_wrapper "http://automateit.org/pub", :source => "http://automateit.org/pub", :reset => true
@@ -231,93 +215,37 @@ end
231
215
 
232
216
  desc "Uninstall automateit gem"
233
217
  task :uninstall do
234
- automateit.package_manager.uninstall "automateit", :with => :gem
218
+ automateit.package_manager.uninstall("automateit", :with => :gem)
235
219
  end
236
220
 
237
221
  #---[ RDoc ]------------------------------------------------------------
238
222
 
239
223
  namespace :rdoc do
240
- desc "Generate documentation"
241
- task :make do
242
- # Uses Jamis Buck's RDoc template from http://weblog.jamisbuck.org/2005/4/8/rdoc-template
243
- sh "rdoc --op doc --template=jamis --main README.txt --promiscuous --accessor class_inheritable_accessor=R --inline-source --line-numbers --title 'AutomateIt: Open source server automation' README.txt TUTORIAL.txt TESTING.txt lib docs/*.txt"
244
- # Create a tutorial index
245
- File.open("doc/tutorial.html", "w+") do |writer|
246
- writer.write(File.read("doc/index.html").sub(/README_txt.html/, 'TUTORIAL_txt.html'))
247
- end
248
- end
224
+ desc "List aliased_methods for inclusion into rdoc"
225
+ task :aliased_methods do
226
+ automateit.instance_eval do
227
+ methods_and_plugins = plugins.values.inject([]){|results,plugin| plugin.aliased_methods && plugin.aliased_methods.each{|method| results << [method.to_s, plugin.class.to_s]}; results}
249
228
 
250
- desc "Rewrite RDoc HTML by interpolating custom tags"
251
- task :rewrite do
252
- require 'cgi'
253
- pattern = /(\[{3})\s*(.+?)\s*(\]{3})/m
254
- for filename in Dir["doc/**/*.html"]
255
- input = File.read(filename)
256
- next unless input and input.match(pattern)
257
- puts filename
258
- output = input.gsub(pattern){|m| CGI.unescapeHTML($2)}
259
- if input != output
260
- FileUtils.mv(filename, filename+".bak", :verbose => true)
261
- File.open(filename, "w+"){|h| h.write(output)}
229
+ for method, plugin in methods_and_plugins.sort_by{|x| x[0]}
230
+ puts " # * %s -- %s#%s" % [method, plugin, method]
262
231
  end
263
232
  end
264
233
  end
265
-
266
- desc "Undo rewrite by restoring backups"
267
- task :undo do
268
- for filename in Dir["doc/**/*.html.bak"]
269
- FileUtils.mv(filename, filename.sub(/\.bak$/, ''), :verbose => true)
270
- end
271
- end
272
-
273
- desc "Generate documentation for specific files in an endless loop"
274
- task :loop do
275
- sources_and_targets = {
276
- "doc/files/TUTORIAL_txt.html" => "TUTORIAL.txt"
277
- }
278
-
279
- while true
280
- different = false
281
- for source, target in sources_and_targets
282
- if ! File.exists?(target) or (File.exists?(target) and File.mtime(target) > File.mtime(source))
283
- different = true
284
- break
285
- end
286
- end
287
-
288
- puts "checking %s" % File.mtime(target)
289
- puts "different" if different
290
-
291
- sh "rdoc --template=jamis --promiscuous --accessor class_inheritable_accessor=R --title 'AutomateIt: Open source server automation' %s" % sources_and_targets.values.join(" ") if different
292
- sleep 1
293
- end
294
- end
295
234
  end
296
235
 
297
- desc "Generate Rdoc"
236
+ desc "Generate documentation"
298
237
  task :rdoc do
299
- # TODO Something is broke in rdoc recently. It decides to only generate rdocs for newer files, which is very bad because if you re-run "rdoc" without deleting the "doc" directory, it'll can end up creating a set of documentation that only contains the single file you changed. This sucks.
300
- sh "rm -rf doc" if File.exist?("doc")
238
+ hoe(:docs)
301
239
 
302
- Rake::Task["rdoc:make"].invoke
303
- Rake::Task["rdoc:rewrite"].invoke
304
- end
305
-
306
- desc "List aliased_methods for inclusion into rdoc"
307
- task :aliased_methods do
308
- automateit.instance_eval do
309
- methods_and_plugins = []
310
- plugins.values.each{|plugin| plugin.aliased_methods && plugin.aliased_methods.each{|method| methods_and_plugins << [method.to_s, plugin.class.to_s]}}
311
-
312
- for method, plugin in methods_and_plugins.sort_by{|x| x[0]}
313
- puts " # * %s -- %s#%s" % [method, plugin, method]
314
- end
240
+ # Create a tutorial index
241
+ File.open("doc/tutorial.html", "w+") do |writer|
242
+ writer.write(File.read("doc/index.html").sub(/README_txt.html/, 'TUTORIAL_txt.html'))
315
243
  end
316
244
  end
317
245
 
318
246
  #---[ Misc ]------------------------------------------------------------
319
247
 
320
- desc "Chown files if needed"
248
+ desc "Chown files in checkout if needed"
321
249
  task :chown do
322
250
  if automateit.superuser?
323
251
  stat = File.stat("..")
@@ -325,11 +253,4 @@ task :chown do
325
253
  end
326
254
  end
327
255
 
328
- desc "Link to local rdoc stash"
329
- task :rdoclink do
330
- automateit.ln_s("/home/lagi/stash/automateit_rdoc", "doc")
331
- end
332
-
333
- task :after => [:rdoclink, :rdoc, :regem]
334
-
335
256
  #===[ fin ]=============================================================
data/TODO.txt CHANGED
@@ -1,48 +1,50 @@
1
- KEY: Important? Urgent? Easy? 1=yes, 0=no
2
-
3
- #===[ App ]=============================================================
4
-
5
- #---[ Quality issues ]--------------------------------------------------
6
- 111 TagManager -- Catch bad YAML using friendly exceptions
7
- !!! ServiceManager -- Create new #stop_and_start, and add new #restart as #tell wrapper
8
- 111 ServiceManager -- Write tests for start_and_enable and such
9
- !!! AccountManager -- Solaris fails 5% of the time on the last spec.
10
- !!! AccountManager -- OpenBSD stalls if it thinks a password's quality sucks.
11
- !!! AccountManager -- OpenBSD fails "should add groups to a user" and "should add users to group"
12
- 111 PackageManager -- Improve PEAR spec by having it check files with and without channel URL
13
- 111 AccountManager::NSCD -- Uses "ps -ef", needs abstraction
14
-
15
- #---[ Design issues ]---------------------------------------------------
16
- ??? PackageManager -- How to specify interpreter? E.g. reuse CPAN driver's approach?
17
- ??? PackageManager -- How to have driver check against instance variables, such as the particular interpreter requested? Needed to work around things like 'gem1.8', 'python2.5.1' and '/usr/local/bin/perl'.
18
- ??? PackageManager -- What's a reasonable way to leave out the ':with' option when using a hash argument to install? E.g., sudo ai -e "package_manager.install({'swiftfox-prescott' => '/tmp/swiftfox_3.0b3pre-1_prescott.deb'}, :with => :dpkg)"
19
-
20
- #---[ Development ]-----------------------------------------------------
21
- 111 Shell or ServiceManager -- Add pgrep/pmatch methods and import them
22
- 111 Shell -- Write #su(user, *command) as a wrapper around #sh
23
- 101 Shell -- Expand glob patterns, e.g. chown_R(500, 500, "*")
24
- 100 Edit -- Display summary of edits, return with :details as [rv, list]
25
- 100 Shell -- Consistently return single items or arrays, alter specs to match
26
- 101 PackageManager::CPAN - Implement
27
-
28
- 000 Shell#chperm -- With symbolic mode, wrap `chmod -v` as temporary workaround?
29
- 001 PackageManager::FreeBSD_Ports - Implmen(or generic ::Ports?) and FreeBSD_Pkg
30
- 000 Darwin -- Write drivers, e.g. PackageManager for Fink and MacPorts (or generic ::Ports?)
31
- 000 PackageManager -- Upgrade or install specific versions
32
- 000 PackageManager::Blastwave -- Implement
33
- 000 PackageManager::SunOS_Pkg -- Implement
34
- 000 ServiceManager::SMF -- Implement
35
- 000 Shell -- Incorporate which.cmd so #which can work on Windows
36
-
37
- 000 Interpreter#invoke and HelpfulERB -- Extract error context code into class
38
- 000 Interpeter -- Implement #track_changes, #changed?
39
- 000 DatabaseManager -- Design
40
- 000 SourceManager -- Design
41
- 000 ScheduleManager -- Design
42
- 000 Driver -- How to determine if a manager or driver method is available? Manager#available?, Manager#available and Driver#suitable? only say if it should be a default.
43
-
44
- #===[ Web ]=============================================================
45
- 100 Index: Call for pilot users, driver authors
46
- 000 CSS: Highlight active menu by setting a class, e.g., current_about.
47
- 000 Kattare is redirecting to www, why?
48
- 000 Add error page
1
+ = AutomateIt's todo list
2
+
3
+ === Software
4
+
5
+ Bugs
6
+ * Interpreter -- "def" in recipes isn't visible, why?
7
+ * ShellManager -- #ln_s of a directory source to a specific non-subdirectory name creates a link
8
+ * AccountManager::NSCD -- Uses "ps -ef", needs abstraction, create and use ProcessManager?
9
+ * AccountManager -- Solaris fails 5% of the time on the last spec. WTF?
10
+ * AccountManager -- OpenBSD stalls if it thinks a password's quality sucks. What to do?
11
+ * AccountManager -- OpenBSD fails "should add groups to a user" and "should add users to group".
12
+
13
+ Needs improvement
14
+ * Interpreter -- #unique_methods should use :symbols
15
+ * Interpreter#invoke and HelpfulERB -- Extract error context code into separate, reusable classes
16
+ * FieldManager -- Wrap #lookup("my#deep#non-existent#path") with friendly exceptions
17
+ * TagManager -- Wrap YAML and ERB errors using friendly exceptions
18
+ * ServiceManager -- Write tests for start_and_enable and such
19
+ * Shell -- Expand glob patterns, e.g. chown_R(500, 500, "*")
20
+ * Edit -- Display summary of edits, return with :details as [rv, list]
21
+ * Shell#chperm -- With symbolic mode, wrap `chmod -v` as temporary workaround?
22
+ * Shell#chperm -- Accept varargs as argument, not just string or array
23
+ * ServiceManager -- Create new #stop_and_start, and add new #restart as #tell wrapper
24
+ * PackageManager -- Improve PEAR spec by having it check files with and without channel URL
25
+
26
+ Needs redesign
27
+ * PackageManager -- How to specify command to use? E.g. 'gem1.8', 'python2.5.1' and '/usr/local/bin/perl'. Generalize CPAN driver's approach?
28
+ * PackageManager -- What's a reasonable way to leave out the ':with' option when using a hash argument to install? E.g., sudo ai -e "package_manager.install({'swiftfox-prescott' => '/tmp/swiftfox_3.0b3pre-1_prescott.deb'}, :with => :dpkg)"
29
+ * Shell -- Consistently return single items or arrays, alter specs to match
30
+ * Driver -- How to determine if a manager or driver method is available? Manager#available?, Manager#available and Driver#suitable? only say if it should be a default.
31
+
32
+ New features
33
+ * ScheduleManager -- Design, or write wrapper for RubyCron or such
34
+ * ProcessManger -- Design (provides "ps -ef" and such), add #pgrep and #pmatch methods
35
+ * Shell -- Write #su(user, *command) as a wrapper around #sh
36
+ * Interpeter -- Implement #track_changes, #changed?
37
+ * SourceManager -- Design (e.g. svn wrapper)
38
+
39
+ New drivers
40
+ * PackageManager::FreeBSD_Ports - Implement (or make generic ::Ports? and FreeBSD_Pkg
41
+ * PackageManager -- Fink and MacPorts (or generic ::Ports?)
42
+ * PackageManager -- Upgrade or install specific versions
43
+ * PackageManager::Blastwave -- Implement
44
+ * PackageManager::SunOS_Pkg -- Implement
45
+ * ServiceManager::SMF -- Implement
46
+
47
+ === Website
48
+
49
+ * CSS -- Highlight active section of site
50
+ * Page -- Add error page