setup 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/HISTORY +77 -0
- data/MANIFEST +24 -57
- data/lib/setup.rb +2 -4
- data/lib/setup/command.rb +23 -23
- data/lib/setup/config.rb +15 -16
- data/lib/setup/error.rb +4 -1
- data/lib/setup/install.rb +139 -69
- data/lib/setup/rake.rb +1 -1
- data/lib/setup/rubyver.rb +18 -11
- data/meta/package +1 -0
- data/meta/released +1 -0
- data/meta/setup/metaconfig.rb +3 -0
- data/meta/version +1 -0
- metadata +23 -61
- data/CHANGES +0 -42
- data/VERSION +0 -2
- data/doc/assets/images/setup-small.png +0 -0
- data/doc/assets/images/setup.png +0 -0
- data/doc/assets/styles/custom.css +0 -59
- data/doc/guide/doc.en/custom.css +0 -47
- data/doc/guide/doc.en/devel.html +0 -215
- data/doc/guide/doc.en/hookapi.html +0 -100
- data/doc/guide/doc.en/index.html +0 -50
- data/doc/guide/doc.en/metaconfapi.html +0 -91
- data/doc/guide/doc.en/usage.html +0 -306
- data/doc/guide/doc.ja/devel.html +0 -301
- data/doc/guide/doc.ja/hookapi.html +0 -84
- data/doc/guide/doc.ja/index.html +0 -28
- data/doc/guide/doc.ja/metaconfapi.html +0 -80
- data/doc/guide/doc.ja/news.html +0 -186
- data/doc/guide/doc.ja/usage.html +0 -319
- data/doc/index.html +0 -58
- data/doc/log/bstats/stats.html +0 -39
- data/doc/log/notes.xml +0 -28
- data/doc/log/stats.log +0 -14
- data/doc/log/syntax.log +0 -0
- data/doc/log/testunit.log +0 -60
- data/doc/note/TODO +0 -14
- data/doc/note/changelog-3.4.1.txt +0 -732
- data/doc/note/news.html +0 -194
- data/doc/note/release-4.0.0.txt +0 -26
- data/task/install +0 -6
data/HISTORY
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
= RELEASE HISTORY
|
2
|
+
|
3
|
+
== 4.2.0 / 2009-08-26
|
4
|
+
|
5
|
+
This release finally gets rdoc generation and doc installation working.
|
6
|
+
Note that rdoc generation is shelled-out at the moment b/c of issues with
|
7
|
+
loading the new verison of RDoc vs. the old version included with Ruby
|
8
|
+
(which bombs). In the process of doding this, all configuration files
|
9
|
+
have now been located in meta/ and meta/setup (or .meta/). See the changes
|
10
|
+
below for more details.
|
11
|
+
|
12
|
+
Changes:
|
13
|
+
|
14
|
+
* 7 Major Enhancements
|
15
|
+
|
16
|
+
* relocated all user configuration files to meta/ and meta/setup
|
17
|
+
* meta/package must exist for doc to be installed.
|
18
|
+
* meta/setup/test.rb must be provided to run tests.
|
19
|
+
* meta/setup/doc.rb can be provided as alternate for generating docs.
|
20
|
+
* meta/setup/metaconfig.rb is now where meta-configuration goes.
|
21
|
+
* documentation is installed to <system-doc-dir>/ruby-<package>/.
|
22
|
+
* documentation generation shells out (for now, b/c of issues with using API)
|
23
|
+
|
24
|
+
* 1 Minor Addition
|
25
|
+
|
26
|
+
* Notice the setup.rb file in the project repo. Guess what that is! ;)
|
27
|
+
|
28
|
+
|
29
|
+
== 4.1.0 / 2008-11-16
|
30
|
+
|
31
|
+
Ruby Setup is a fork or Minero Aokoi's setup.rb script. Whereas setup.rb
|
32
|
+
had to be copied into every project that used it, Ruby Setup is a stand
|
33
|
+
alone application.
|
34
|
+
|
35
|
+
The API is largely the same, with a only few distinctions. Most importantly,
|
36
|
+
multi-package support has been removed. Also the underlying system has been
|
37
|
+
made more object-oriented. For instance, what was ToplevelInstaller is now
|
38
|
+
Setup::Installer. Finally configuration files are saved to .cache/setup and
|
39
|
+
metaconfig should be placed in .config/setup, rather then directly into
|
40
|
+
the root project directory.
|
41
|
+
|
42
|
+
I still consider this and "early" release of Ruby Setup, that is until enough
|
43
|
+
people put it through it's paces. However, since it is predominantly
|
44
|
+
setup.rb 3.4.1 code, and since it works well enough to install itself ;)
|
45
|
+
it certainly is a usable product.
|
46
|
+
|
47
|
+
Please report any problems so I can fix them ASAP. Thanks.
|
48
|
+
|
49
|
+
Changes:
|
50
|
+
|
51
|
+
* 5 Major Enhancements
|
52
|
+
|
53
|
+
* testing only runs if a test script if provided
|
54
|
+
* cache files are now stored in .cache/setup/
|
55
|
+
* Renamed binary from rubysetup to setup.rb.
|
56
|
+
* Hoping that the use of a dot in the name is not a problem on Windows.
|
57
|
+
* By using setup.rb for the binary, it matches exactly the name of the old script.
|
58
|
+
* Other developers could do likewise, eg. setup.py; akin to mkfs.ext3 and friends.
|
59
|
+
* Added script/install as a bootstrap installer.
|
60
|
+
* restored metaconfig
|
61
|
+
|
62
|
+
* 2 Minor Enhancements
|
63
|
+
|
64
|
+
* added test from original (needs work)
|
65
|
+
* removed test/suite.rb option from testing
|
66
|
+
|
67
|
+
|
68
|
+
== 4.0.0 / 2008-08-15
|
69
|
+
|
70
|
+
This is the first whack at making setup.rb a stand-alone application.
|
71
|
+
|
72
|
+
Changes:
|
73
|
+
|
74
|
+
* 3 Other Enhancements
|
75
|
+
|
76
|
+
* Initial checkin.
|
77
|
+
|
data/MANIFEST
CHANGED
@@ -1,64 +1,31 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
doc/guide/doc.en
|
4
|
-
doc/guide/doc.en/devel.html
|
5
|
-
doc/guide/doc.en/usage.html
|
6
|
-
doc/guide/doc.en/custom.css
|
7
|
-
doc/guide/doc.en/index.html
|
8
|
-
doc/guide/doc.en/hookapi.html
|
9
|
-
doc/guide/doc.en/metaconfapi.html
|
10
|
-
doc/guide/doc.ja
|
11
|
-
doc/guide/doc.ja/devel.html
|
12
|
-
doc/guide/doc.ja/usage.html
|
13
|
-
doc/guide/doc.ja/index.html
|
14
|
-
doc/guide/doc.ja/hookapi.html
|
15
|
-
doc/guide/doc.ja/news.html
|
16
|
-
doc/guide/doc.ja/metaconfapi.html
|
17
|
-
doc/assets
|
18
|
-
doc/assets/styles
|
19
|
-
doc/assets/styles/custom.css
|
20
|
-
doc/assets/images
|
21
|
-
doc/assets/images/setup.png
|
22
|
-
doc/assets/images/setup-small.png
|
23
|
-
doc/note
|
24
|
-
doc/note/changelog-3.4.1.txt
|
25
|
-
doc/note/TODO
|
26
|
-
doc/note/release-4.0.0.txt
|
27
|
-
doc/note/news.html
|
28
|
-
doc/index.html
|
29
|
-
doc/log
|
30
|
-
doc/log/stats.log
|
31
|
-
doc/log/notes.xml
|
32
|
-
doc/log/bstats
|
33
|
-
doc/log/bstats/stats.html
|
34
|
-
doc/log/syntax.log
|
35
|
-
doc/log/testunit.log
|
1
|
+
COPYING
|
2
|
+
HISTORY
|
36
3
|
MANIFEST
|
37
|
-
test
|
38
|
-
test/test_installer.rb
|
39
|
-
CHANGES
|
40
|
-
RELEASE
|
41
4
|
README
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
meta/summary
|
46
|
-
meta/abstract
|
47
|
-
meta/authors
|
48
|
-
meta/contact
|
49
|
-
task
|
50
|
-
task/install
|
5
|
+
RELEASE
|
6
|
+
bin
|
7
|
+
bin/setup.rb
|
51
8
|
lib
|
52
|
-
lib/setup.rb
|
53
9
|
lib/setup
|
54
|
-
lib/setup
|
55
|
-
lib/setup/rake.rb
|
56
|
-
lib/setup/command.rb
|
10
|
+
lib/setup.rb
|
57
11
|
lib/setup/build.rb
|
12
|
+
lib/setup/command.rb
|
58
13
|
lib/setup/config.rb
|
59
|
-
lib/setup/rubyver.rb
|
60
14
|
lib/setup/error.rb
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
15
|
+
lib/setup/install.rb
|
16
|
+
lib/setup/rake.rb
|
17
|
+
lib/setup/rubyver.rb
|
18
|
+
meta
|
19
|
+
meta/abstract
|
20
|
+
meta/authors
|
21
|
+
meta/contact
|
22
|
+
meta/created
|
23
|
+
meta/homepage
|
24
|
+
meta/package
|
25
|
+
meta/released
|
26
|
+
meta/setup
|
27
|
+
meta/setup/metaconfig.rb
|
28
|
+
meta/summary
|
29
|
+
meta/version
|
30
|
+
test
|
31
|
+
test/test_installer.rb
|
data/lib/setup.rb
CHANGED
data/lib/setup/command.rb
CHANGED
@@ -1,35 +1,38 @@
|
|
1
1
|
require 'setup/config'
|
2
2
|
require 'setup/build'
|
3
3
|
require 'setup/install'
|
4
|
+
require 'setup/error'
|
4
5
|
|
5
6
|
module Setup
|
6
7
|
|
7
|
-
# CLI for
|
8
|
-
#
|
8
|
+
# CLI for Setup.rb
|
9
9
|
class Command
|
10
10
|
|
11
11
|
TASKS = %w(all config show setup test install uninstall rdoc ri clean distclean)
|
12
12
|
|
13
13
|
TASK_DESCRIPTIONS = [
|
14
|
-
[ 'all',
|
15
|
-
[ 'config',
|
16
|
-
[ 'show',
|
17
|
-
[ 'setup',
|
18
|
-
[ 'rdoc',
|
19
|
-
[ 'ri',
|
20
|
-
[ 'install',
|
21
|
-
[ '
|
22
|
-
[ '
|
23
|
-
[ '
|
14
|
+
[ 'all', "do config, setup, then install" ],
|
15
|
+
[ 'config', "saves your configurations" ],
|
16
|
+
[ 'show', "shows current configuration" ],
|
17
|
+
[ 'setup', "compiles ruby extentions and others" ],
|
18
|
+
[ 'rdoc', "generate rdoc documentation" ],
|
19
|
+
[ 'ri', "generate ri documentation" ],
|
20
|
+
[ 'install', "installs files" ],
|
21
|
+
[ 'uninstall', "uninstalls files" ],
|
22
|
+
[ 'test', "run all tests in test/" ],
|
23
|
+
[ 'clean', "does `make clean' for each extention" ],
|
24
|
+
[ 'distclean', "does `make distclean' for each extention" ]
|
24
25
|
]
|
25
26
|
|
26
27
|
#
|
27
|
-
def self.run
|
28
|
-
new.run
|
28
|
+
def self.run(*argv)
|
29
|
+
new.run(*argv)
|
29
30
|
end
|
30
31
|
|
31
32
|
#
|
32
|
-
def run
|
33
|
+
def run(*argv)
|
34
|
+
ARGV.replace(argv) unless argv.empty?
|
35
|
+
|
33
36
|
config = ConfigTable.new
|
34
37
|
installer = Installer.new(config)
|
35
38
|
|
@@ -89,11 +92,11 @@ module Setup
|
|
89
92
|
installer.verbose = val
|
90
93
|
end
|
91
94
|
|
92
|
-
opts.on("
|
95
|
+
opts.on("--no-write", "Do not write to disk") do |val|
|
93
96
|
installer.no_harm = !val
|
94
97
|
end
|
95
98
|
|
96
|
-
opts.on("--dryrun", "Same as --no-write") do |val|
|
99
|
+
opts.on("-n", "--dryrun", "Same as --no-write") do |val|
|
97
100
|
installer.no_harm = val
|
98
101
|
end
|
99
102
|
|
@@ -126,7 +129,7 @@ module Setup
|
|
126
129
|
|
127
130
|
begin
|
128
131
|
installer.__send__("exec_#{task}")
|
129
|
-
rescue
|
132
|
+
rescue Error
|
130
133
|
raise if $DEBUG
|
131
134
|
$stderr.puts $!.message
|
132
135
|
$stderr.puts "Try 'ruby #{$0} --help' for detailed usage."
|
@@ -134,9 +137,9 @@ module Setup
|
|
134
137
|
end
|
135
138
|
end
|
136
139
|
|
137
|
-
# Generate help text
|
140
|
+
# Generate help text
|
138
141
|
def help
|
139
|
-
|
142
|
+
fmt = " " * 10 + "%-10s %s"
|
140
143
|
commands = TASK_DESCRIPTIONS.collect do |k,d|
|
141
144
|
(fmt % ["#{k}", d])
|
142
145
|
end.join("\n").strip
|
@@ -164,11 +167,8 @@ module Setup
|
|
164
167
|
-n --no-write Do not write to disk
|
165
168
|
|
166
169
|
END
|
167
|
-
|
168
170
|
text.gsub(/^ \ \ \ \ \ /, '')
|
169
171
|
end
|
170
172
|
|
171
173
|
end
|
172
|
-
|
173
174
|
end
|
174
|
-
|
data/lib/setup/config.rb
CHANGED
@@ -34,8 +34,8 @@ module Setup
|
|
34
34
|
[:rubyprog , :prog, 'ruby program used for installation'],
|
35
35
|
[:makeprog , :prog, 'make program to compile ruby extentions'],
|
36
36
|
[:extconfopt , :name, 'options to pass-thru to extconf.rb'],
|
37
|
-
[:
|
38
|
-
[:
|
37
|
+
[:withoutext , :bool, 'do not compile/install ruby extentions'],
|
38
|
+
[:withoutdoc , :bool, 'do not generate documentation'],
|
39
39
|
[:shebang , :pick, 'shebang line (#!) editing mode (all,ruby,never)'],
|
40
40
|
[:doctemplate , :pick, 'document template to use (html|xml)'],
|
41
41
|
[:testrunner , :pick, 'Runner to use for testing (auto|console|tk|gtk|gtk2)'],
|
@@ -53,10 +53,10 @@ module Setup
|
|
53
53
|
@#{name}.gsub(%r<\\$([^/]+)>){ self[$1] }
|
54
54
|
end
|
55
55
|
def #{name}=(path)
|
56
|
-
raise
|
56
|
+
raise Error, "bad config: #{name.to_s.upcase} requires argument" unless path
|
57
57
|
@#{name} = (path[0,1] == '$' ? path : File.expand_path(path))
|
58
58
|
end
|
59
|
-
}
|
59
|
+
}
|
60
60
|
end
|
61
61
|
|
62
62
|
# List of pathnames. These are not expanded though.
|
@@ -73,7 +73,7 @@ module Setup
|
|
73
73
|
@#{name} = pathlist.to_s.split(/[:;,]/)
|
74
74
|
end
|
75
75
|
end
|
76
|
-
}
|
76
|
+
}
|
77
77
|
end
|
78
78
|
|
79
79
|
# Adds boolean support.
|
@@ -102,7 +102,7 @@ module Setup
|
|
102
102
|
when 'n', 'no', 'f', 'false'
|
103
103
|
@#{name} = false
|
104
104
|
else
|
105
|
-
raise
|
105
|
+
raise Error, "bad config: use #{name.upcase}=(yes|no) [\#{val}]"
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
@@ -133,7 +133,7 @@ module Setup
|
|
133
133
|
if %w(all ruby never).include?(val)
|
134
134
|
@shebang = val
|
135
135
|
else
|
136
|
-
raise
|
136
|
+
raise Error, "bad config: use SHEBANG=(all|ruby|never) [#{val}]"
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
@@ -148,12 +148,12 @@ module Setup
|
|
148
148
|
self.rbdir = '$siterubyver'
|
149
149
|
self.sodir = '$siterubyverarch'
|
150
150
|
when 'home'
|
151
|
-
raise
|
151
|
+
raise Error, 'HOME is not set.' unless ENV['HOME']
|
152
152
|
self.prefix = ENV['HOME']
|
153
153
|
self.rbdir = '$libdir/ruby'
|
154
154
|
self.sodir = '$libdir/ruby'
|
155
155
|
else
|
156
|
-
raise
|
156
|
+
raise Error, "bad config: use INSTALLDIRS=(std|site|home|local) [#{val}]"
|
157
157
|
end
|
158
158
|
end
|
159
159
|
|
@@ -270,10 +270,10 @@ module Setup
|
|
270
270
|
self.makeprog = makeprog
|
271
271
|
self.extconfopt = ''
|
272
272
|
self.shebang = 'ruby'
|
273
|
-
self.
|
274
|
-
self.
|
275
|
-
self.doctemplate =
|
276
|
-
self.testrunner = 'auto'
|
273
|
+
self.withoutext = 'no'
|
274
|
+
self.withoutdoc = 'no'
|
275
|
+
self.doctemplate = nil
|
276
|
+
self.testrunner = 'auto' # needed?
|
277
277
|
self.installdirs = 'site'
|
278
278
|
end
|
279
279
|
|
@@ -296,7 +296,7 @@ module Setup
|
|
296
296
|
__send__("#{k}=",v.strip) #self[k] = v.strip
|
297
297
|
end
|
298
298
|
rescue Errno::ENOENT
|
299
|
-
raise
|
299
|
+
raise Error, $!.message + "\n#{File.basename($0)} config first"
|
300
300
|
end
|
301
301
|
#end
|
302
302
|
end
|
@@ -330,7 +330,6 @@ module Setup
|
|
330
330
|
end
|
331
331
|
|
332
332
|
#
|
333
|
-
|
334
333
|
def extconfs
|
335
334
|
@extconfs ||= Dir['ext/**/extconf.rb']
|
336
335
|
end
|
@@ -362,7 +361,7 @@ module Setup
|
|
362
361
|
|
363
362
|
# Metaconfig file is '.config/setup/metaconfig{,.rb}'.
|
364
363
|
def load_meta_config
|
365
|
-
path = Dir.glob('.config/setup/metaconfig{,.rb}').first
|
364
|
+
path = Dir.glob('.config/setup/metaconfig{,.rb}').first
|
366
365
|
if path && File.file?(path)
|
367
366
|
MetaConfigEnvironment.new(self).instance_eval(File.read(path), path)
|
368
367
|
end
|
data/lib/setup/error.rb
CHANGED
data/lib/setup/install.rb
CHANGED
@@ -1,18 +1,32 @@
|
|
1
1
|
require 'optparse'
|
2
2
|
require 'setup/config'
|
3
3
|
|
4
|
-
# TODO: we need to abort install if tests fail (
|
5
|
-
# We will also need to add a force install option then.
|
6
|
-
#
|
7
|
-
# TODO:
|
8
|
-
#
|
4
|
+
# TODO: we need to abort install if tests fail (check return code of TESTER)
|
5
|
+
# We will also need to add a force install option then to by pass failed tests.
|
6
|
+
#
|
7
|
+
# TODO: Generate rdocs... Package developer may want to deactivate this. How?
|
8
|
+
#
|
9
|
+
# TODO: Should be using Rdoc programmatically, but load issue arose and an error
|
10
|
+
# was being generated on ri generation. Reverting back to shelling out for now.
|
11
|
+
|
12
|
+
# The name of the package, used to install docs in system doc/ruby-{name}/ location.
|
13
|
+
# The information must be provided in a file called meta/package.
|
14
|
+
PACKAGE =(
|
15
|
+
if file = Dir["{meta,.meta}/package"].first
|
16
|
+
File.read(file).strip
|
17
|
+
else
|
18
|
+
nil
|
19
|
+
end
|
20
|
+
)
|
21
|
+
|
22
|
+
# A ruby script that instructs setup how to run tests, located at meta/setup/test.rb
|
23
|
+
# If the tests fail, the script should exit with a fail status (eg. -1).
|
24
|
+
TESTER = Dir.glob('{meta,.meta}/setup/test{,rc}.rb', File::FNM_CASEFOLD).first
|
9
25
|
|
10
|
-
#
|
11
|
-
|
26
|
+
# A ruby script that instructs setup how to generate docs, located at meta/setup/doc.rb
|
27
|
+
# NOTE: Docs must be generate into the doc/ for them to be installed.
|
28
|
+
DOCTOR = Dir.glob('{meta,.meta}/setup/doc{,rc}.rb', File::FNM_CASEFOLD).first
|
12
29
|
|
13
|
-
#--
|
14
|
-
#File.read(Dir.glob('{.,meta/}unixname{,.txt}', File::FNM_CASEFOLD).first).strip
|
15
|
-
#++
|
16
30
|
|
17
31
|
module Setup
|
18
32
|
|
@@ -46,13 +60,14 @@ module Setup
|
|
46
60
|
@objdir = File.expand_path(objroot)
|
47
61
|
@currdir = '.'
|
48
62
|
|
49
|
-
self.quiet = ENV['quiet']
|
63
|
+
self.quiet = ENV['quiet'] if ENV['quiet']
|
50
64
|
self.verbose = ENV['verbose'] if ENV['verbose']
|
51
65
|
self.no_harm = ENV['nowrite'] if ENV['nowrite']
|
52
66
|
|
53
67
|
yield(self) if block_given?
|
54
68
|
end
|
55
69
|
|
70
|
+
#
|
56
71
|
def inspect
|
57
72
|
"#<#{self.class} #{File.basename(@srcdir)}>"
|
58
73
|
end
|
@@ -167,10 +182,7 @@ module Setup
|
|
167
182
|
##
|
168
183
|
# TASK setup
|
169
184
|
#
|
170
|
-
# FIXME: Update shebang
|
171
|
-
# for now I've commented out the shebang.
|
172
|
-
#
|
173
|
-
|
185
|
+
# FIXME: Update shebang on install rather than before.
|
174
186
|
def exec_setup
|
175
187
|
report_header('setup')
|
176
188
|
exec_task_traverse 'setup'
|
@@ -179,7 +191,7 @@ module Setup
|
|
179
191
|
|
180
192
|
def setup_dir_bin(rel)
|
181
193
|
files_of(curr_srcdir()).each do |fname|
|
182
|
-
|
194
|
+
update_shebang_line "#{curr_srcdir()}/#{fname}" # MOVE TO INSTALL (BUT HOW?)
|
183
195
|
end
|
184
196
|
end
|
185
197
|
|
@@ -274,18 +286,17 @@ module Setup
|
|
274
286
|
#
|
275
287
|
# Complexities arise in trying to figure out what test framework
|
276
288
|
# is used, and how to run tests. To simplify the process, this
|
277
|
-
#
|
278
|
-
# or
|
289
|
+
# simply looks for a script in meta/setup called testrc.rb,
|
290
|
+
# or just test.rb.
|
279
291
|
#
|
280
292
|
def exec_test
|
281
293
|
return if install_no_test
|
282
|
-
file
|
283
|
-
file ||= Dir.glob('.config/setup/test{,rc}{,.rb}', File::FNM_CASEFOLD).first
|
284
|
-
file ||= Dir.glob('{script,task}/test', File::FNM_CASEFOLD).first
|
294
|
+
file = TESTER
|
285
295
|
if file
|
286
296
|
report_header('test')
|
287
297
|
ruby(file)
|
288
298
|
end
|
299
|
+
#puts "Ok." unless quiet?
|
289
300
|
end
|
290
301
|
|
291
302
|
### DEPRECATED
|
@@ -338,50 +349,76 @@ module Setup
|
|
338
349
|
|
339
350
|
##
|
340
351
|
# TASK doc
|
341
|
-
#
|
342
|
-
# NOT USED YET.
|
343
352
|
|
344
353
|
def exec_doc
|
345
|
-
return if config.
|
354
|
+
return if config.withoutdoc?
|
346
355
|
report_header('doc')
|
347
|
-
|
348
|
-
|
356
|
+
if file = DOCTOR
|
357
|
+
ruby(file)
|
358
|
+
else
|
359
|
+
exec_rdoc
|
360
|
+
end
|
361
|
+
exec_ri
|
349
362
|
end
|
350
363
|
|
351
364
|
# Generate rdocs.
|
352
|
-
|
365
|
+
#
|
366
|
+
# NOT USED YET B/C WE WOULD HAVE TO KNOW THE NAME OF THE PROJECT
|
367
|
+
# TO DO THIS CORRECTLY. (WHERE DO WE GET THAT?)
|
368
|
+
#
|
369
|
+
# Answer: meta/package or .meta/package
|
370
|
+
#
|
353
371
|
def exec_rdoc
|
354
|
-
|
355
|
-
title = (PACKAGE_NAME.capitalize + " API").strip
|
356
|
-
main = Dir.glob("README{,.txt}", File::FNM_CASEFOLD).first
|
357
|
-
template = config.doctemplate || 'html'
|
358
|
-
|
359
|
-
opt = []
|
360
|
-
opt << "-U"
|
361
|
-
opt << "-S"
|
362
|
-
opt << "--op=#{output}"
|
363
|
-
opt << "--template=#{template}"
|
364
|
-
opt << "--title=#{title}"
|
365
|
-
opt << "--main=#{main}" if main
|
372
|
+
main = Dir.glob("README{,.*}", File::FNM_CASEFOLD).first
|
366
373
|
|
367
374
|
if File.exist?('.document')
|
368
375
|
files = File.read('.document').split("\n")
|
369
376
|
files.reject!{ |l| l =~ /^\s*[#]/ || l !~ /\S/ }
|
370
377
|
files.collect!{ |f| f.strip }
|
371
|
-
opt << files
|
372
378
|
else
|
373
|
-
|
374
|
-
|
379
|
+
files = []
|
380
|
+
files << main if main
|
381
|
+
files << 'lib' if File.directory?('lib')
|
382
|
+
files << 'ext' if File.directory?('ext')
|
375
383
|
end
|
376
384
|
|
385
|
+
checkfiles = (files + files.map{ |f| Dir[File.join(f,'*','**')] }).flatten.uniq
|
386
|
+
if FileUtils.uptodate?('doc/rdoc', checkfiles)
|
387
|
+
puts "RDocs look uptodate."
|
388
|
+
return
|
389
|
+
end
|
390
|
+
|
391
|
+
output = 'doc/rdoc'
|
392
|
+
title = (PACKAGE.capitalize + " API").strip
|
393
|
+
template = config.doctemplate || 'html'
|
394
|
+
|
395
|
+
opt = []
|
396
|
+
opt << "-U"
|
397
|
+
opt << "-q" #if quiet?
|
398
|
+
opt << "--op=#{output}"
|
399
|
+
#opt << "--template=#{template}"
|
400
|
+
opt << "--title=#{title}"
|
401
|
+
opt << "--main=#{main}" if main
|
402
|
+
#opt << "--debug"
|
403
|
+
opt << files
|
404
|
+
|
377
405
|
opt = opt.flatten
|
378
406
|
|
407
|
+
cmd = "rdoc " + opt.join(' ')
|
408
|
+
|
379
409
|
if no_harm?
|
380
|
-
puts
|
410
|
+
puts cmd
|
381
411
|
else
|
382
|
-
|
383
|
-
|
384
|
-
|
412
|
+
begin
|
413
|
+
system(cmd)
|
414
|
+
#require 'rdoc/rdoc'
|
415
|
+
#::RDoc::RDoc.new.document(opt)
|
416
|
+
puts "Ok rdoc." unless quiet?
|
417
|
+
rescue Exception
|
418
|
+
puts "Fail rdoc."
|
419
|
+
puts "Command was: '#{cmd}'"
|
420
|
+
puts "Proceeding with install anyway."
|
421
|
+
end
|
385
422
|
end
|
386
423
|
end
|
387
424
|
|
@@ -404,30 +441,43 @@ module Setup
|
|
404
441
|
files.reject!{ |l| l =~ /^\s*[#]/ || l !~ /\S/ }
|
405
442
|
files.collect!{ |f| f.strip }
|
406
443
|
else
|
407
|
-
files = [
|
444
|
+
files = []
|
445
|
+
files << 'lib' if File.directory?('lib')
|
446
|
+
files << 'ext' if File.directory?('ext')
|
408
447
|
end
|
409
448
|
|
410
449
|
opt = []
|
411
450
|
opt << "-U"
|
451
|
+
opt << "-q" #if quiet?
|
452
|
+
#opt << "-D" #if $DEBUG
|
412
453
|
opt << output
|
413
454
|
opt << files
|
455
|
+
|
414
456
|
opt = opt.flatten
|
415
457
|
|
458
|
+
cmd = "rdoc " + opt.join(' ')
|
459
|
+
|
416
460
|
if no_harm?
|
417
|
-
puts
|
461
|
+
puts cmd
|
418
462
|
else
|
419
463
|
# Generate in system location specified
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
464
|
+
begin
|
465
|
+
system(cmd)
|
466
|
+
#require 'rdoc/rdoc'
|
467
|
+
#::RDoc::RDoc.new.document(opt)
|
468
|
+
puts "Ok ri." unless quiet?
|
469
|
+
rescue Exception
|
470
|
+
puts "Fail ri."
|
471
|
+
puts "Command was: '#{cmd}'"
|
472
|
+
puts "Proceeding with install anyway."
|
473
|
+
end
|
424
474
|
# Now in local directory
|
425
|
-
opt = []
|
426
|
-
opt << "-U"
|
427
|
-
opt << "--ri --op 'doc/ri'"
|
428
|
-
opt << files
|
429
|
-
opt = opt.flatten
|
430
|
-
|
475
|
+
#opt = []
|
476
|
+
#opt << "-U"
|
477
|
+
#opt << "--ri --op 'doc/ri'"
|
478
|
+
#opt << files
|
479
|
+
#opt = opt.flatten
|
480
|
+
#::RDoc::RDoc.new.document(opt)
|
431
481
|
end
|
432
482
|
end
|
433
483
|
|
@@ -473,15 +523,12 @@ module Setup
|
|
473
523
|
|
474
524
|
# doc installs to directory named: "ruby-#{package}"
|
475
525
|
def install_dir_doc(rel)
|
476
|
-
return if config.
|
477
|
-
|
526
|
+
return if config.withoutdoc?
|
527
|
+
return unless PACKAGE
|
528
|
+
dir = "#{config.docdir}/ruby-#{PACKAGE}/#{rel}" # "#{config.docdir}/#{rel}"
|
478
529
|
install_files targetfiles(), dir, 0644
|
479
530
|
end
|
480
531
|
|
481
|
-
# doc installs to directory named: "ruby-#{package}"
|
482
|
-
def install_dir_doc(rel)
|
483
|
-
end
|
484
|
-
|
485
532
|
def install_files(list, dest, mode)
|
486
533
|
mkdir_p dest, install_prefix
|
487
534
|
list.each do |fname|
|
@@ -519,7 +566,7 @@ module Setup
|
|
519
566
|
end
|
520
567
|
|
521
568
|
# picked up many entries from cvs-1.11.1/src/ignore.c
|
522
|
-
JUNK_FILES = %w(
|
569
|
+
JUNK_FILES = %w(
|
523
570
|
core RCSLOG tags TAGS .make.state
|
524
571
|
.nse_depinfo #* .#* cvslog.* ,* .del-* *.olb
|
525
572
|
*~ *.old *.bak *.BAK *.orig *.rej _$* *$
|
@@ -568,9 +615,24 @@ module Setup
|
|
568
615
|
paths = File.read(MANIFEST).split("\n")
|
569
616
|
dirs, files = paths.partition{ |f| File.dir?(f) }
|
570
617
|
|
571
|
-
|
618
|
+
remove = []
|
619
|
+
files.uniq.each do |file|
|
572
620
|
next if /^\#/ =~ file # skip comments
|
573
|
-
|
621
|
+
remove << file if File.exist?(file)
|
622
|
+
end
|
623
|
+
|
624
|
+
if verbose? && !no_harm?
|
625
|
+
puts remove.collect{ |f| "rm #{f}" }.join("\n")
|
626
|
+
ans = ask("Continue?", "yN")
|
627
|
+
case ans
|
628
|
+
when 'y', 'Y', 'yes'
|
629
|
+
else
|
630
|
+
return # abort?
|
631
|
+
end
|
632
|
+
end
|
633
|
+
|
634
|
+
remove.each do |file|
|
635
|
+
rm_f(file)
|
574
636
|
end
|
575
637
|
|
576
638
|
dirs.each do |dir|
|
@@ -645,7 +707,7 @@ module Setup
|
|
645
707
|
def exec_task_traverse(task)
|
646
708
|
run_hook "pre-#{task}"
|
647
709
|
FILETYPES.each do |type|
|
648
|
-
if type == 'ext' and config.
|
710
|
+
if type == 'ext' and config.withoutext? #== 'yes'
|
649
711
|
$stderr.puts 'skipping ext/* by user option' if verbose?
|
650
712
|
next
|
651
713
|
end
|
@@ -866,6 +928,14 @@ module Setup
|
|
866
928
|
}
|
867
929
|
end
|
868
930
|
|
931
|
+
# Ask a question of the user.
|
932
|
+
def ask(question, answers=nil)
|
933
|
+
$stdout << "#{question}"
|
934
|
+
$stdout << " [#{answers}] " if answers
|
935
|
+
until inp = $stdin.gets ; sleep 1 ; end
|
936
|
+
inp.strip
|
937
|
+
end
|
938
|
+
|
869
939
|
##
|
870
940
|
# Hook Script API
|
871
941
|
#
|
@@ -885,7 +955,7 @@ module Setup
|
|
885
955
|
|
886
956
|
# srcdir/objdir (works only in the package directory)
|
887
957
|
#
|
888
|
-
# TODO: Since package directory has been deprecated these
|
958
|
+
# TODO: Since package directory has been deprecated these
|
889
959
|
# probably can be worked out of the system. ?
|
890
960
|
|
891
961
|
#
|