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
|
# File 'lib/subtrac/trac.rb', line 25
def create_project(project)
client = project.client
project.trac_dir = File.join(Config.trac_dir,client.path,project.path)
say("Create project directories...")
File.create_if_missing(project.trac_dir)
say("Creating a new trac site...")
result = `trac-admin #{project.trac_dir} initenv #{project.path} sqlite:#{project.trac_dir}/db/trac.db svn #{project.svn_dir}`
FileUtils.chown_R('www-data', 'www-data', project.trac_dir, :verbose => false) if result
say("Installing trac configuration...")
trac_ini_template = Template.new(File.join(File.dirname(__FILE__), "trac", "trac.ini.erb"))
trac_ini_template.write(File.join(project.trac_dir,"/conf/trac.ini"))
say("Setting up default trac permissions...")
Config.trac_permissions.each do |key, value|
`sudo trac-admin #{project.trac_dir} permission add #{key} #{value}`
end
say("Adding default trac wiki pages...#{project.template}")
Dir.foreach("#{project.template}/trac/wiki/.") do |file|
unless ['.', '..','.svn'].include? file
temp_file = File.join(Config.temp_dir,file)
template = Template.new(File.join(project.template,"trac/wiki",file))
template.write(temp_file)
`trac-admin #{project.trac_dir} wiki import #{file} #{temp_file}`
FileUtils.rm(temp_file)
end
end
say("Upgrading the trac installation...")
`trac-admin #{project.trac_dir} upgrade`
end
|