-
Notifications
You must be signed in to change notification settings - Fork 1
/
install.rb
100 lines (82 loc) · 3.04 KB
/
install.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/usr/bin/ruby -w
require "rbconfig"
require "fileutils"
module Gurgitate
Package = "gurgitate-mail"
class Install
def self.mkdir(d)
print "Creating #{d}..."
begin
Dir.mkdir(d)
print "\n"
rescue Errno::EEXIST
if FileTest.directory? d
puts "no need, it's already there."
else
puts "there's something else there already."
raise
end
rescue Errno::ENOENT
puts "its parent doesn't exist!"
raise
end
end
def self.install(prefix=nil)
include Config
if prefix then
bindir = File.join prefix, "bin"; mkdir bindir
dest = File.join prefix, "lib"; mkdir dest
mkdir File.join(prefix, "man")
mandir = File.join prefix, "man", "man1"; mkdir mandir
test = File.join(prefix,"test")
else
version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"]
sitedir = CONFIG["sitedir"]
bindir = CONFIG["bindir"]
mandir = File.join(CONFIG["mandir"],"man1")
dest = CONFIG["sitelibdir"]
test = nil
end
destgur = File.join(dest,"gurgitate")
destdel = File.join(destgur,"deliver")
print "Installing #{Package}.rb in #{dest}...\n"
FileUtils.install("#{Package}.rb", dest, :mode => 0644)
mkdir destgur
Dir.glob(File.join("gurgitate","*.rb")).each { |f|
puts "Installing #{f} in #{destgur}..."
FileUtils.install(f,destgur)
}
mkdir destdel
Dir.glob(File.join(File.join("gurgitate","deliver"),"*.rb")).each {
|f|
puts "Installing #{f} in #{destdel}..."
FileUtils.install(f,destdel)
}
if test then
mkdir test
Dir[File.join("test","*.rb")].each do |f|
puts "Installing #{f} in #{test}"
FileUtils.install(f, test)
end
FileUtils.install "Rakefile.test", File.join(prefix, "Rakefile")
end
print "Installing #{Package}.1 in #{mandir}...\n"
FileUtils.install("#{Package}.man","#{mandir}/#{Package}.1",
:mode => 0644)
print "Installing #{Package} in #{bindir}...\n"
# Not so simple; need to put in the shebang line
from_f=File.open("gurgitate-mail")
to_f=File.open("#{bindir}/gurgitate-mail","w")
to_f.print("#!#{bindir}/ruby -w\n\n")
from_f.each do |l|
to_f.print l
end
to_f.close()
from_f.close()
File.chmod(0755,"#{bindir}/gurgitate-mail")
end
end
end
if __FILE__ == $0 then
Gurgitate::Install.install()
end