Class: Subtrac::Trac
- Inherits:
-
Object
- Object
- Subtrac::Trac
- Defined in:
- lib/subtrac/trac.rb
Instance Method Summary collapse
- #create_project(project) ⇒ Object
-
#initialize ⇒ Trac
constructor
A new instance of Trac.
-
#install_common_files ⇒ Object
Install the shared trac.ini file.
Constructor Details
permalink #initialize ⇒ Trac
Returns a new instance of Trac.
13 14 15 |
# File 'lib/subtrac/trac.rb', line 13 def initialize File.create_if_missing(Config.trac_dir) end |
Instance Method Details
permalink #create_project(project) ⇒ Object
[View source]
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) # create new project directories say("Create project directories...") File.create_if_missing(project.trac_dir) # create a new trac site 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...") # install project trac.ini 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...") # set up trac permissions Config..each do |key, value| `sudo trac-admin #{project.trac_dir} permission add #{key} #{value}` end say("Adding default trac wiki pages...#{project.template}") # loop through the directory and import all pages 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 # run trac upgrade say("Upgrading the trac installation...") `trac-admin #{project.trac_dir} upgrade` end |
permalink #install_common_files ⇒ Object
Install the shared trac.ini file
18 19 20 21 22 23 |
# File 'lib/subtrac/trac.rb', line 18 def install_common_files File.create_if_missing(File.join(Config.trac_dir, ".shared")) # install trac.ini trac_ini_template = Template.new(File.join(File.dirname(__FILE__), "trac", "common.trac.ini.erb")) trac_ini_template.write(File.join(Config.trac_dir,".shared","trac.ini")) end |