reap 0.6.1 → 3.01

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. data/{ANN-0.6.1 → ANN} +0 -0
  2. data/ChangeLog +19 -8
  3. data/ProjectInfo +25 -0
  4. data/README +76 -11
  5. data/Rakefile +139 -17
  6. data/bin/reap +159 -0
  7. data/lib/reap/{announce-task.rb → announce_task.rb} +43 -41
  8. data/lib/reap/{chmod-task.rb → filemod_task.rb} +24 -20
  9. data/lib/reap/info_task.rb +29 -0
  10. data/lib/reap/noop_task.rb +35 -0
  11. data/lib/reap/{package-task.rb → package_task.rb} +63 -43
  12. data/lib/reap/projectinfo.rb +40 -0
  13. data/lib/reap/{publish-task.rb → publish_task.rb} +21 -17
  14. data/lib/reap/{rdoc-task.rb → rdoc_task.rb} +24 -19
  15. data/lib/reap/ready_made.rb +12 -0
  16. data/lib/reap/task.rb +89 -162
  17. data/lib/reap/tasks.rb +9 -0
  18. data/lib/reap/{test-task.rb → test_task.rb} +35 -15
  19. data/lib/reap/web_publish_task.rb +49 -0
  20. data/pub/grape.jpg +0 -0
  21. data/pub/www/index.html +61 -21
  22. data/pub/www/rdoc/classes/ProjectInfo.html +207 -0
  23. data/pub/www/rdoc/classes/ProjectInfo.src/M000055.html +18 -0
  24. data/pub/www/rdoc/classes/ProjectInfo.src/M000056.html +23 -0
  25. data/pub/www/rdoc/classes/ProjectInfo.src/M000057.html +18 -0
  26. data/pub/www/rdoc/classes/ProjectInfo.src/M000058.html +21 -0
  27. data/pub/www/rdoc/classes/ProjectInfo.src/M000059.html +18 -0
  28. data/pub/www/rdoc/classes/RakeTask.html +182 -0
  29. data/pub/www/rdoc/classes/RakeTask.src/M000051.html +18 -0
  30. data/pub/www/rdoc/classes/RakeTask.src/M000052.html +18 -0
  31. data/pub/www/rdoc/classes/RakeTask.src/M000053.html +18 -0
  32. data/pub/www/rdoc/classes/RakeTask.src/M000054.html +18 -0
  33. data/pub/www/rdoc/classes/Reap.html +57 -4
  34. data/pub/www/rdoc/classes/Reap/AnnounceTask.html +140 -14
  35. data/pub/www/rdoc/classes/Reap/AnnounceTask.src/M000039.html +16 -0
  36. data/pub/www/rdoc/classes/Reap/{TemplateTask.src/M000021.html → AnnounceTask.src/M000040.html} +4 -4
  37. data/pub/www/rdoc/classes/Reap/AnnounceTask.src/{M000031.html → M000041.html} +34 -34
  38. data/pub/www/rdoc/classes/Reap/AnnounceTask.src/{M000032.html → M000042.html} +1 -1
  39. data/pub/www/rdoc/classes/Reap/FilemodTask.html +254 -0
  40. data/pub/www/rdoc/classes/Reap/FilemodTask.src/M000027.html +16 -0
  41. data/pub/www/rdoc/classes/Reap/FilemodTask.src/M000028.html +18 -0
  42. data/pub/www/rdoc/classes/Reap/FilemodTask.src/M000029.html +21 -0
  43. data/pub/www/rdoc/classes/Reap/{ChmodTask.src/M000017.html → FilemodTask.src/M000030.html} +3 -3
  44. data/pub/www/rdoc/classes/Reap/{ChmodTask.src/M000018.html → FilemodTask.src/M000031.html} +2 -2
  45. data/pub/www/rdoc/classes/Reap/FilemodTask.src/M000032.html +18 -0
  46. data/pub/www/rdoc/classes/Reap/{TemplateTask.html → InfoTask.html} +46 -34
  47. data/pub/www/rdoc/classes/Reap/InfoTask.src/M000047.html +16 -0
  48. data/pub/www/rdoc/classes/Reap/{Task.src/M000026.html → InfoTask.src/M000048.html} +4 -4
  49. data/pub/www/rdoc/classes/Reap/{Task.src/M000025.html → InfoTask.src/M000049.html} +2 -3
  50. data/pub/www/rdoc/classes/Reap/InfoTask.src/M000050.html +18 -0
  51. data/pub/www/rdoc/classes/Reap/NoopTask.html +210 -0
  52. data/pub/www/rdoc/classes/Reap/NoopTask.src/M000043.html +16 -0
  53. data/pub/www/rdoc/classes/Reap/NoopTask.src/M000044.html +18 -0
  54. data/pub/www/rdoc/classes/Reap/{Task.src/M000028.html → NoopTask.src/M000045.html} +4 -3
  55. data/pub/www/rdoc/classes/Reap/NoopTask.src/M000046.html +18 -0
  56. data/pub/www/rdoc/classes/Reap/PackageTask.html +179 -22
  57. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000005.html +16 -0
  58. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000006.html +24 -0
  59. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000007.html +53 -0
  60. data/pub/www/rdoc/classes/Reap/PackageTask.src/{M000002.html → M000008.html} +3 -4
  61. data/pub/www/rdoc/classes/Reap/PackageTask.src/{M000003.html → M000009.html} +1 -1
  62. data/pub/www/rdoc/classes/Reap/PublishTask.html +85 -14
  63. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000023.html +16 -0
  64. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000024.html +18 -0
  65. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000025.html +22 -0
  66. data/pub/www/rdoc/classes/Reap/PublishTask.src/{M000020.html → M000026.html} +2 -2
  67. data/pub/www/rdoc/classes/Reap/RDocTask.html +37 -21
  68. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000001.html +16 -0
  69. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000002.html +18 -0
  70. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000003.html +25 -0
  71. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000004.html +39 -10
  72. data/pub/www/rdoc/classes/Reap/Task.html +44 -124
  73. data/pub/www/rdoc/classes/Reap/Task.src/M000033.html +21 -0
  74. data/pub/www/rdoc/classes/Reap/Task.src/{M000030.html → M000034.html} +4 -5
  75. data/pub/www/rdoc/classes/Reap/Task.src/M000035.html +41 -0
  76. data/pub/www/rdoc/classes/Reap/Task.src/M000036.html +16 -0
  77. data/pub/www/rdoc/classes/Reap/Task.src/M000037.html +18 -0
  78. data/pub/www/rdoc/classes/Reap/Task.src/M000038.html +19 -0
  79. data/pub/www/rdoc/classes/Reap/TestTask.html +66 -32
  80. data/pub/www/rdoc/classes/Reap/TestTask.src/M000014.html +16 -0
  81. data/pub/www/rdoc/classes/Reap/TestTask.src/M000015.html +18 -0
  82. data/pub/www/rdoc/classes/Reap/TestTask.src/M000016.html +25 -0
  83. data/pub/www/rdoc/classes/Reap/TestTask.src/{M000009.html → M000017.html} +5 -5
  84. data/pub/www/rdoc/classes/Reap/TestTask.src/{M000010.html → M000018.html} +3 -3
  85. data/pub/www/rdoc/classes/Reap/TestTask.src/{M000011.html → M000019.html} +1 -1
  86. data/pub/www/rdoc/classes/Reap/TestTask/TestResults.html +17 -17
  87. data/pub/www/rdoc/classes/Reap/TestTask/TestResults.src/{M000012.html → M000020.html} +1 -1
  88. data/pub/www/rdoc/classes/Reap/TestTask/TestResults.src/{M000013.html → M000021.html} +1 -1
  89. data/pub/www/rdoc/classes/Reap/TestTask/TestResults.src/{M000014.html → M000022.html} +1 -1
  90. data/pub/www/rdoc/classes/Reap/{ChmodTask.html → WebPublishTask.html} +46 -35
  91. data/pub/www/rdoc/classes/Reap/WebPublishTask.src/M000010.html +16 -0
  92. data/pub/www/rdoc/classes/Reap/WebPublishTask.src/M000011.html +18 -0
  93. data/pub/www/rdoc/classes/Reap/WebPublishTask.src/M000012.html +21 -0
  94. data/pub/www/rdoc/classes/Reap/WebPublishTask.src/M000013.html +32 -0
  95. data/pub/www/rdoc/classes/ReapTask.html +287 -0
  96. data/pub/www/rdoc/classes/ReapTask.src/M000060.html +18 -0
  97. data/pub/www/rdoc/classes/ReapTask.src/M000061.html +18 -0
  98. data/pub/www/rdoc/classes/ReapTask.src/M000062.html +18 -0
  99. data/pub/www/rdoc/classes/ReapTask.src/M000063.html +18 -0
  100. data/pub/www/rdoc/classes/ReapTask.src/M000064.html +18 -0
  101. data/pub/www/rdoc/classes/ReapTask.src/M000065.html +18 -0
  102. data/pub/www/rdoc/classes/ReapTask.src/M000066.html +18 -0
  103. data/pub/www/rdoc/classes/ReapTask.src/M000067.html +18 -0
  104. data/pub/www/rdoc/classes/ReapTask.src/M000068.html +18 -0
  105. data/pub/www/rdoc/created.rid +1 -1
  106. data/pub/www/rdoc/files/{lib/reap2/publish-task_rb.html → LICENSE.html} +19 -7
  107. data/pub/www/rdoc/files/README.html +271 -0
  108. data/pub/www/rdoc/files/lib/{reap2/announce-task_rb.html → reap/announce_task_rb.html} +5 -4
  109. data/pub/www/rdoc/files/lib/{reap2/template-task_rb.html → reap/filemod_task_rb.html} +5 -5
  110. data/pub/www/rdoc/files/lib/{reap2/rdoc-task_rb.html → reap/info_task_rb.html} +5 -5
  111. data/pub/www/rdoc/files/lib/{reap2/chmod-task_rb.html → reap/noop_task_rb.html} +5 -5
  112. data/pub/www/rdoc/files/lib/{reap2/package-task_rb.html → reap/package_task_rb.html} +5 -4
  113. data/pub/www/rdoc/files/lib/reap/projectinfo_rb.html +111 -0
  114. data/pub/www/rdoc/files/lib/reap/publish_task_rb.html +108 -0
  115. data/pub/www/rdoc/files/lib/reap/rdoc_task_rb.html +108 -0
  116. data/pub/www/rdoc/files/lib/reap/ready_made_rb.html +115 -0
  117. data/pub/www/rdoc/files/lib/{reap2 → reap}/task_rb.html +5 -6
  118. data/pub/www/rdoc/files/lib/reap/tasks_rb.html +115 -0
  119. data/pub/www/rdoc/files/lib/{reap2/test-task_rb.html → reap/test_task_rb.html} +5 -10
  120. data/pub/www/rdoc/files/lib/reap/web_publish_task_rb.html +108 -0
  121. data/pub/www/rdoc/fr_class_index.html +7 -2
  122. data/pub/www/rdoc/fr_file_index.html +15 -9
  123. data/pub/www/rdoc/fr_method_index.html +68 -32
  124. data/pub/www/rdoc/index.html +1 -1
  125. data/test/tc_reap.rb +1 -1
  126. metadata +126 -58
  127. data/Reapfile +0 -99
  128. data/lib/reap/reap-all.rb +0 -15
  129. data/lib/reap/template-task.rb +0 -40
  130. data/pub/www/rdoc/classes/Reap/ChmodTask.src/M000015.html +0 -21
  131. data/pub/www/rdoc/classes/Reap/ChmodTask.src/M000016.html +0 -21
  132. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000001.html +0 -49
  133. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000019.html +0 -24
  134. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000005.html +0 -21
  135. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000006.html +0 -53
  136. data/pub/www/rdoc/classes/Reap/Task.src/M000024.html +0 -21
  137. data/pub/www/rdoc/classes/Reap/Task.src/M000027.html +0 -28
  138. data/pub/www/rdoc/classes/Reap/Task.src/M000029.html +0 -18
  139. data/pub/www/rdoc/classes/Reap/TemplateTask.src/M000022.html +0 -21
  140. data/pub/www/rdoc/classes/Reap/TemplateTask.src/M000023.html +0 -34
  141. data/pub/www/rdoc/classes/Reap/TestTask.src/M000007.html +0 -25
  142. data/pub/www/rdoc/classes/Reap/TestTask.src/M000008.html +0 -21
  143. data/pub/www/rdoc/files/lib/reap2/reap-all_rb.html +0 -110
data/{ANN-0.6.1 → ANN} RENAMED
File without changes
data/ChangeLog CHANGED
@@ -1,9 +1,20 @@
1
1
 
2
- v0.5:
3
- - Improved testing. Output is summarized and in YAML!
4
- - Improved configuration loading a bit.
5
- - Worte some basic docs on how to write a Reap task.
6
- - Adjusted for Nano upgrade (was Facets).
7
-
8
- v0.4:
9
- - Initial Toasting
2
+ = Reap ChangeLog
3
+
4
+ == 03
5
+
6
+ * Major overhaul. Reap is no longer an independent project.
7
+ Rather, it is now an extension of Rake. All Reap tasks are
8
+ now a subclass of Rake::TaskLib.
9
+
10
+ == 02
11
+
12
+ * Improved test task. Each test now runs in its own process.
13
+ Output is summarized and in YAML.
14
+ * Improved configuration loading a bit.
15
+ * Wrote some basic docs on how to write a Reap task.
16
+ * Adjusted for Nano upgrade (was Facets).
17
+
18
+ == 01
19
+
20
+ * Alpha Development
data/ProjectInfo ADDED
@@ -0,0 +1,25 @@
1
+ --- %YAML:1.0
2
+
3
+ TITLE : &title Reap
4
+ NAME : &pkg reap
5
+ VERSION : '3.01'
6
+ AUTHOR : Thomas Sawyer
7
+ EMAIL : &email transfire@gmail.com
8
+ HOMEPAGE : "http://reap.rubyforge.org"
9
+ SUMMARY : Rake extensions for project management assitance.
10
+
11
+ DESCRIPTION: >
12
+ The Reap extensions for Rake comprise a set of commonly
13
+ needed tasks for Ruby package developers/deployers.
14
+ Because of the commonality, Reap utilizes a YAML
15
+ configuration file to harvest project information,
16
+ significantly simplifying Rake usage. In fact,
17
+ when using Reap, it will not be uncommon to see a
18
+ Rakefile containinf nothing but require 'reap-all'.
19
+
20
+ DEPENDENCIES : &dep [ nano ]
21
+ EXECUTABLES : &exe []
22
+
23
+ RUBYFORGE:
24
+ PROJECT: reap
25
+ USERNAME: reap
data/README CHANGED
@@ -4,16 +4,16 @@ User Friendly Project Assitant for Ruby
4
4
 
5
5
  == What's This?
6
6
 
7
- Reap is a user friendly project assistant for Ruby developers.
8
- By organizing your project in a semi-formal manner (the same as setup.rb),
9
- Reap makes it easy to do the following tasks:
7
+ Reap is a user friendly project assistant for Ruby developers
8
+ built on top of Rake. By organizing your project in a semi-formal
9
+ manner (the same as setup.rb), Reap makes it easy to do the
10
+ following tasks:
10
11
 
11
12
  * Generate RDocs.
12
13
  * Run unit tests.
13
14
  * Create Ruby Gem packages.
14
- * Create standard .tar.gz, tar.bzip2 and/or .zip packages.
15
+ * Create standard .tgz, tbz (bzip2) and/or .zip packages.
15
16
  * Publish documents to Rubyforge or other web sites.
16
- * Preform a traditional install (calls setup.rb).
17
17
  * Announce a release to Ruby-talk or other mailing list.
18
18
  * Prepare files for distribution (i.e. chmod, tag, etc.).
19
19
  * Upload packages (coming soon!).
@@ -30,13 +30,11 @@ Install the ruby gem as you would any other:
30
30
 
31
31
  <tt>gem install reap</tt>
32
32
 
33
- Reap is part of the Ruby clibre project and requires
34
- supporting calibre libraries, Facets and Carats, so
35
- they will also be installed.
33
+ Reap requires Nano Methods.
36
34
 
37
35
  === Manual Install
38
36
 
39
- To install manually follw the usiusl setup.eb steps:
37
+ To install manually follow the usual setup.eb steps:
40
38
 
41
39
  1. Download the compressed package.
42
40
  2. Unpack it.
@@ -45,10 +43,78 @@ To install manually follw the usiusl setup.eb steps:
45
43
 
46
44
  You should be good to go.
47
45
 
46
+ == Usage
47
+
48
+ === Using a Reap Task
49
+
50
+ Reap makes it pretty easy to use it's built-in tasks.
51
+ Not only will it grab common data from a ProjectInfo
52
+ YAML file if available, but it defines convenience methods
53
+ to make writing Rakefiles easier. For instance, to create
54
+ a "package" target all you generally need in your Rakefile is:
55
+
56
+ require 'reap/tasks'
57
+
58
+ include ReapTask
59
+
60
+ package_task :package
61
+
62
+ The reaon this can be so simple, is b/c Reap extrapolates the
63
+ information it needs from a comon ProjectInfo file. You will
64
+ of course need to create this file in you projects main directory.
65
+ A template is provided and a command line tool to copy it to your
66
+ current directory. Simply type:
67
+
68
+ > reap template
69
+
70
+ Then edit the ProjectInfo file. The fields are fairly self
71
+ explanitiory. Apart from Reap such a file is nice to have on
72
+ it's own merits too.
73
+
74
+ === Building a Reap Task
75
+
76
+ Building a Reap task differs from building a Rake task
77
+ by two important factors. First there is only one target
78
+ per task (this may change) Second, task blocks are yeilded
79
+ _prior_ to the #init routine being exectuted. So your #init
80
+ routine should expect data to already be present in
81
+ the tasks attribute and take that into account (usually that
82
+ means using ++||=++)
83
+
84
+ Here's an, oh so simple, example:
85
+
86
+ class MyOhSoSimpleTask < Reap::Task
87
+
88
+ # This creates the convenience method
89
+ register 'my_oh_so_simple'
90
+
91
+ default_desc 'this is a custom reap task'
92
+
93
+ attr_accessor :message
94
+
95
+ def init
96
+ @message ||= master['default'] || 'None Found!'
97
+ end
98
+
99
+ # run the target task
100
+ def run
101
+ puts @message
102
+ end
103
+
104
+ end
105
+
106
+ The corresponding settings in the ProjectInfo file (master) will then be:
107
+
108
+ default: Default text, if any.
109
+
110
+ And to use it in your Rake file:
111
+
112
+ ReapTask::my_oh_so_simple_task :mytarget
113
+
48
114
  == Status
49
115
 
50
116
  Reap is currently Usable Beta. Most of the tasks
51
- work very well. Refinement are still coomon though,
117
+ work very well. Refinements are still common though,
52
118
  and a few important tasks are still being planned.
53
119
 
54
120
  == Legal
@@ -56,4 +122,3 @@ and a few important tasks are still being planned.
56
122
  Reap
57
123
  Copyright(c)2004-2005 Thomas Sawyer
58
124
  Ruby License
59
-
data/Rakefile CHANGED
@@ -1,19 +1,141 @@
1
1
 
2
- require 'reap/reap-all'
3
-
4
- #require 'reap/template-task'
5
- #require 'reap/chmod-task'
6
- #require 'reap/test-task'
7
- #require 'reap/rdoc-task'
8
- #require 'reap/announce-task'
9
- #require 'reap/publish-task'
10
- #require 'reap/package-task'
11
-
12
- #Reap::TemplateTask.new
13
- #Reap::ChmodTask.new
14
- #Reap::TestTask.new
15
- #Reap::RDocTask.new
16
- #Reap::AnnounceTask.new
17
- #Reap::PublishTask.new
18
- #Reap::PackageTask.new
2
+ require 'reap/tasks'
19
3
 
4
+ # Traditionally, a prebuilt rake task is utilized like this:
5
+ #
6
+ # Reap::PublishTask.new :mypublisher do |s|
7
+ # s.type = 'web'
8
+ # s.host = 'rubyforge.org'
9
+ # s.username = 'transami'
10
+ # s.dir = 'pub/www'
11
+ # end
12
+ #
13
+ # Reap provides a way to use YAML and specilize methods to make
14
+ # this even cleaner.
15
+ #
16
+ # publish_task( :mypublisher ) {"
17
+ # type : web
18
+ # host : rubyforge.org
19
+ # username : transami
20
+ # dir : pub/www
21
+ # "}
22
+ #
23
+ # Of course, one can still use a traditional block with the
24
+ # special methods.
25
+ #
26
+ # publish_task :mypublisher do |s|
27
+ # s.type = 'web'
28
+ # s.host = 'rubyforge.org'
29
+ # s.username = 'transami'
30
+ # s.dir = 'pub/www'
31
+ # end
32
+ #
33
+ # But there is an additional advantage to the YAML approach. Reap prepends
34
+ # the task YAML with the YAML in the ProjectInfo file. This way it is easy
35
+ # to reuse master information in indivial tasks. For exmaple you might have
36
+ # an# &author anchor defined in ProjectInfo.
37
+ #
38
+ # publish_task( :mypublisher ) {"
39
+ # type : web
40
+ # host : rubyforge.org
41
+ # username : *author
42
+ # dir : pub/www
43
+ # "}
44
+ #
45
+ # This special method notation actually works for some prebuilt rake tasks too.
46
+ # But do not expect the YAML to work /w them.
47
+ #
48
+
49
+ # template_task
50
+
51
+ include ReapTask
52
+
53
+ info_task( :info )
54
+
55
+ publish_task :publish do"
56
+ type : web
57
+ host : rubyforge.org
58
+ username : transami
59
+ dir : www
60
+ "end
61
+
62
+ announce_task :announce do"
63
+ to : transfire@gmail.com # ruby-talk@ruby-lang.org
64
+ from : *email
65
+ domain : reap.rubyforge.org
66
+ server : smtp.gmail.com
67
+ port : 587
68
+ account : *email # transfire@gmail.com
69
+ authtype : login # cram_md5, plain
70
+ sectype : tls # ~, tls, ssl (not working yet)
71
+ file : ANN # which file contains announcement
72
+ slogan : REAP THE REWARDS!
73
+ links :
74
+ - http://reap.rubyforge.org
75
+ - http://rake.rubyforge.org
76
+ "end
77
+
78
+ filemod_task :filemod do"
79
+ filemod: 644
80
+ dirmod: 755
81
+ user: trans
82
+ group: users
83
+ "end
84
+
85
+ test_task :test do"
86
+ files:
87
+ - 'test/**/tc*.rb'
88
+ - 'test/**/test*.rb'
89
+ - 'test/**/*test.rb'
90
+ options: ~ # not used yet
91
+ "end
92
+
93
+ rdoc_task :rdoc do"
94
+ title: *title
95
+ dir: 'pub/www/rdoc'
96
+ template: html
97
+ options: ['--merge', '--all']
98
+ main: README
99
+ include:
100
+ - 'README*'
101
+ - 'LICEN*'
102
+ - 'COPY*'
103
+ - 'lib/**/*.rb'
104
+ - 'bin/**/*.rb'
105
+ exclude: []
106
+ "end
107
+
108
+ package_task :package do"
109
+ dir: pkg
110
+ include:
111
+ - 'lib/**/*'
112
+ - 'data/**/*'
113
+ - 'ext/**/*'
114
+ - 'bin/**/*'
115
+ - 'bench/**/*'
116
+ - 'test/**/*'
117
+ - 'doc/**/*'
118
+ - 'rdoc/**/*'
119
+ - 'pub/**/*'
120
+ - 'www/**/*'
121
+ - 'demo/**/*'
122
+ - 'samples/**/*'
123
+ - 'examples/**/*'
124
+ - 'bench/**/*'
125
+ - 'setup.rb'
126
+ - '[A-Z]*'
127
+ exclude:
128
+ - InstalledFiles
129
+ autorequire: ~
130
+ requirements: []
131
+ dependencies: *dep #[]
132
+ executables: *exe #[]
133
+ gem: true
134
+ zip: true
135
+ gzip: true
136
+ bzip2: true
137
+ "end
138
+
139
+ noop_task :noop do"
140
+ message: 'Hello, World!'
141
+ "end
data/bin/reap ADDED
@@ -0,0 +1,159 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'getoptlong'
4
+ require 'rbconfig'
5
+ require 'reap/tasks'
6
+
7
+ HELP1 = <<-HERE
8
+
9
+ reap v#{::Reap::VERSION}
10
+
11
+ USAGE: reap [options...] <command> [arguments...]
12
+
13
+ COMMANDS:
14
+
15
+ help
16
+ Displays this help information.
17
+
18
+ template
19
+ Copies the ProjectInfo template into the current
20
+ directory, if it doesn't already exist.
21
+
22
+ HERE
23
+
24
+ HELP2 = <<-HERE
25
+ OPTIONS:
26
+
27
+ -v --verbose
28
+ Provides extra verbose processing information.
29
+
30
+ -u --use <file>
31
+ Use the specified configuration file rather than
32
+ the default 'ProjectInfo'.
33
+
34
+ -p --pretend (NOT YET IMPLEMENTED)
35
+ Pretend, just to see what would happen, but don't
36
+ actually do anything.
37
+
38
+ --version
39
+ Display the current version.
40
+
41
+ --help
42
+ Display this help information.
43
+ HERE
44
+
45
+
46
+ module Commands
47
+ extend self
48
+
49
+ DATA_DIR = 'site_ruby/reap'
50
+ FILE_NAME = 'ProjectInfo'
51
+
52
+ def version
53
+ puts "%.2f" % [ Reap::Version ]
54
+ end
55
+
56
+ def help
57
+ puts HELP1
58
+
59
+ #Reap::Task.registry.each do |t|
60
+ # puts " #{t.task_name}"
61
+ # puts " #{t.task_desc}\n\n"
62
+ #end
63
+
64
+ puts HELP2
65
+ end
66
+
67
+ def tasks
68
+ puts
69
+ #Reap::Task.registry.each do |t|
70
+ # puts " #{t.task_name}".ljust(20) + "#{t.task_desc}"
71
+ #end
72
+ puts
73
+ end
74
+
75
+ def template( file_name = ProjectInfo )
76
+ #dir = File.dirname(File.dirname(__FILE__))
77
+ dir = File.join( ::Config::CONFIG['datadir'], DATA_DIR )
78
+
79
+ tmpf = File.join( dir, 'template.yaml' )
80
+ unless File.file?( tmpf )
81
+ puts tmpf
82
+ raise "Tempfile is missing."
83
+ end
84
+
85
+ if File.directory?(filename)
86
+ puts "#{filename} a directory. Cannot comply."
87
+ return
88
+ elsif File.file?(filename)
89
+ puts "#{filename} already exists."
90
+ return
91
+ end
92
+ # copy tmpf to Reapfile
93
+ FileUtils.cp( tmpf, filename )
94
+ puts "#{filename} created. You'll need to fill it out."
95
+ end
96
+
97
+ end
98
+
99
+
100
+ # main
101
+
102
+ cmd = nil
103
+
104
+ opts = GetoptLong.new(
105
+ [ "-v", "--verbose", GetoptLong::NO_ARGUMENT ],
106
+ [ "-p", "--pretend", GetoptLong::NO_ARGUMENT ],
107
+ [ "-d", "--debug", GetoptLong::NO_ARGUMENT ],
108
+ [ "-u", "--use", GetoptLong::REQUIRED_ARGUMENT ],
109
+ [ "--version", GetoptLong::NO_ARGUMENT ],
110
+ [ "--help", GetoptLong::NO_ARGUMENT ]
111
+ )
112
+
113
+ opts.each do |o, a|
114
+ case o
115
+ when '-v'
116
+ $VERBOSE = true
117
+ when '-p'
118
+ $PRETEND = true
119
+ when '-u'
120
+ config = a
121
+ when '-d'
122
+ $DEBUG = true
123
+ when '--help'
124
+ cmd = 'help'
125
+ when '--version'
126
+ cmd = 'version'
127
+ end
128
+ end
129
+
130
+ cmd = cmd || ARGV[0]
131
+ args = ARGV[1..-1]
132
+ config = nil
133
+
134
+ cmd = cmd.downcase if cmd
135
+
136
+ case cmd
137
+ when nil,'help'
138
+ Commands.help
139
+ exit 0
140
+ when 'tasks'
141
+ Commands.tasks
142
+ exit 0
143
+ when 'version'
144
+ Commands.version
145
+ exit 0
146
+ when 'template'
147
+ Commands.template
148
+ end
149
+
150
+ # Quick-build and run a task.
151
+
152
+ c = cmd.downcase.to_s
153
+ if ReapTask.respond_to?( "#{c}_task" )
154
+ rt = ReapTask.send("#{c}_task") { ARGV.slice(1..-1).join(' ') }
155
+ rt.run
156
+ else
157
+ puts "Unknown command. Try 'reap help' for assitance."
158
+ exit 0
159
+ end