keithsalisbury-subtrac 0.1.6 → 0.1.7

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/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 6
3
2
  :major: 0
4
3
  :minor: 1
4
+ :patch: 7
@@ -9,27 +9,14 @@ development: &non_production_settings
9
9
  :server_ip: "192.168.2.1"
10
10
 
11
11
  :installation_dir: test
12
-
13
- :dirs:
14
- :svn: svn
15
- :trac: trac
16
- :log: log
17
- :docs: www
18
- :conf: conf
19
- :conf_locations: conf/locations
20
- :temp: tmp
21
- :urls:
22
- :svn: "/svn"
23
- :templates:
24
- :virtual_host: "templates/vhost.erb"
25
- :location: "templates/location.erb"
26
- :trac: "templates/trac.erb"
27
- :projects: "templates/projects"
28
12
 
29
13
  :default_project_template: "blank"
30
14
  :default_client: "Subtrac"
31
15
  :default_project: "Public"
32
16
  :shared_trac_ini: "shared/trac.ini"
17
+
18
+ :apache2_conf: /etc/apache2/sites-available
19
+
33
20
  :ldap:
34
21
  :enable: false
35
22
  :host:
@@ -39,8 +26,9 @@ development: &non_production_settings
39
26
  :group_rdn:
40
27
  :store_bind:
41
28
  :group_bind:
42
- :bind_user:
29
+ :bind_dn:
43
30
  :bind_passwd:
31
+
44
32
  :trac:
45
33
  :permissions:
46
34
  admins: TRAC_ADMIN
@@ -50,6 +38,23 @@ development: &non_production_settings
50
38
  salisburyk: admin
51
39
  client: clients
52
40
 
41
+ # Internal config
42
+ :dirs:
43
+ :svn: svn
44
+ :trac: trac
45
+ :log: log
46
+ :docs: www
47
+ :conf: conf
48
+ :conf_locations: conf/locations
49
+ :temp: tmp
50
+ :urls:
51
+ :svn: "/svn"
52
+ :templates:
53
+ :virtual_host: "templates/vhost.erb"
54
+ :location: "templates/location.erb"
55
+ :trac: "templates/trac.erb"
56
+ :projects: "templates/projects"
57
+
53
58
  test:
54
59
  <<: *non_production_settings
55
60
 
@@ -2,24 +2,24 @@
2
2
  ServerAdmin webmaster@localhost
3
3
  ServerName <%= @server_hostname %>
4
4
  DocumentRoot <%= @docs_dir %>
5
- ErrorLog <%= @APP_CONFIG[:dirs][:log] %>/error.<%= @server_hostname %>.log
6
- CustomLog <%= @APP_CONFIG[:dirs][:log] %>/access.<%= @server_hostname %>.log combined
5
+ ErrorLog <%= @log_dir %>/error.<%= @server_hostname %>.log
6
+ CustomLog <%= @log_dir %>/access.<%= @server_hostname %>.log combined
7
7
  LogLevel error
8
8
 
9
9
  RewriteEngine On
10
- RewriteRule ^/$ http://<%= @server_hostname %>/saint/public
11
- RewriteRule ^/index*$ http://<%= @server_hostname %>/saint/public
10
+ RewriteRule ^/$ http://<%= @server_hostname %>/<%= @default_client %>/<%= @default_project %>
11
+ RewriteRule ^/index*$ http://<%= @server_hostname %>/<%= @default_client %>/<%= @default_project %>
12
12
 
13
13
  <location />
14
14
  AuthType Basic
15
- AuthName 'SaintDigitalSourceRepository'
15
+ AuthName '<%= @server_name %>'
16
16
  AuthUserFile <%= @APP_CONFIG[:dirs][:install] %>/passwords
17
17
  #Require valid-user
18
- AuthBasicProvider file ldap
19
- AuthLDAPBindDN 'CN=WTMS LDAP Auth,OU=WTMS,OU=STS,OU=Europe,OU=EMEA-YR-LON-GLH,OU=EMEA-YR-LON,OU=EMEA-YR,DC=emea,DC=corp,DC=yr,DC=com'
20
- AuthLDAPBindPassword 'l00kmeup'
21
- AuthLDAPURL 'ldap://emea-root03.emea.corp.yr.com:389/dc=emea,dc=corp,dc=yr,dc=com?sAMAccountName?sub?(&(objectClass=user)(memberOf=cn=EMEA-YR-LON-GLH-SAINT-DEVELOPERS,ou=Groups,ou=Saint,ou=RKCRYR,ou=EMEA-YR-LON-GLH,ou=EMEA-YR-LON,ou=EMEA-YR,dc=emea,dc=corp,dc=yr,dc=com))'
22
- AuthzLDAPAuthoritative off
18
+ #AuthBasicProvider file ldap
19
+ #AuthLDAPBindDN '<%= @ldap_bind_dn %>'
20
+ #AuthLDAPBindPassword '<%= @ldap_bind_password %>'
21
+ #AuthLDAPURL '<%= @ldap_url %>'
22
+ #AuthzLDAPAuthoritative off
23
23
  </location>
24
24
 
25
25
  <location <%= @APP_CONFIG[:urls][:svn] %>>
@@ -27,9 +27,9 @@
27
27
  SVNParentPath <%= @APP_CONFIG[:dirs][:svn] %>/
28
28
  SVNListParentPath On
29
29
  SVNAutoversioning On
30
- SVNReposName 'SaintDigitalSourceRepository'
30
+ SVNReposName '<%= @server_name %>'
31
31
  </location>
32
32
 
33
- Include <%= @APP_CONFIG[:dirs][:conf_locations] %>/*
33
+ Include <%= @locations_dir %>/*
34
34
 
35
35
  </virtualhost>
data/lib/subtrac.rb CHANGED
@@ -42,7 +42,7 @@ require 'subtrac/version'
42
42
 
43
43
  module Subtrac
44
44
  SUBTRAC_ROOT = File.join(File.dirname(__FILE__), "subtrac")
45
- DEV_ENV = 'test' # should be a system environment var
45
+ DEV_ENV = 'development' # should be a system environment var
46
46
 
47
47
  attr_accessor :server_name, :server_hostname, :server_ip, :default_client, :default_project, :install_dir, :docs_dir, :conf_dir, :locations_dir, :svn_dir, :trac_dir, :temp_dir
48
48
 
@@ -88,9 +88,6 @@ module Subtrac
88
88
  end
89
89
  end
90
90
 
91
- private
92
-
93
- =begin
94
91
  # Loads the configuration YML file
95
92
  def self.load_config
96
93
  puts "\n==== Loading configuration file ===="
@@ -120,15 +117,22 @@ module Subtrac
120
117
  @default_client = @APP_CONFIG[:default_client]
121
118
  @default_project = @APP_CONFIG[:default_project]
122
119
 
123
- @install_dir = @APP_CONFIG[:installation_dir]
120
+ @install_dir = File.expand_path(@APP_CONFIG[:installation_dir])
124
121
  @docs_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:docs])
125
- @conf_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:conf])
122
+ @conf_dir = @APP_CONFIG[:apache2_conf]
126
123
  @locations_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:conf_locations])
127
124
  @svn_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:svn])
128
125
  @trac_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:trac])
129
126
  @temp_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:temp])
127
+ @log_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:log])
128
+
129
+ @ldap_bind_dn = @APP_CONFIG[:ldap][:bind_dn]
130
+ @ldap_bind_password = @APP_CONFIG[:ldap][:bind_password]
131
+ @ldap_url = @APP_CONFIG[:ldap][:host]
130
132
 
131
133
  end
134
+
135
+ private
132
136
 
133
137
  # Ask the user for configuration details
134
138
  def self.get_config
@@ -203,7 +207,7 @@ module Subtrac
203
207
  client_name = name.downcase
204
208
  # create apache configuration
205
209
  location_template = File.join(SUBTRAC_ROOT, @APP_CONFIG[:templates][:location])
206
- location_conf = File.join(@locations_dir,client_name,".conf")
210
+ location_conf = File.join(@locations_dir,"#{client_name}.conf")
207
211
  parse_template(location_template,location_conf,binding)
208
212
  `/etc/init.d/apache2 force-reload` if DEV_ENV != 'test'
209
213
 
@@ -227,6 +231,10 @@ module Subtrac
227
231
  raise StandardError, "A project called #{project} already exists in the #{client} repository. Would you like to replace it?"
228
232
  end
229
233
 
234
+ # create new project directories
235
+ create_if_missing svn_dir
236
+ create_if_missing trac_dir
237
+
230
238
  project_template = File.join(SUBTRAC_ROOT, @APP_CONFIG[:templates][:projects],@APP_CONFIG[:default_project_template])
231
239
 
232
240
  # copy template svn project to a temp folder, then svn import it into the repo
@@ -235,6 +243,7 @@ module Subtrac
235
243
  FileUtils.cp_r(svn_template_dir,temp_dir)
236
244
 
237
245
  # create a new subversion repository
246
+ say("Creating a new subversion repository...")
238
247
  `svnadmin create #{svn_dir}` if DEV_ENV != 'test'
239
248
 
240
249
  # import into svn
@@ -243,24 +252,25 @@ module Subtrac
243
252
  FileUtils.rm_r(temp_dir, :force => true)
244
253
 
245
254
  # create a new trac site
246
- `trac-admin #{trac_dir} initenv #{project_name} sqlite:#{trac_dir}/db/trac.db svn #{svn_dir}` if DEV_ENV != 'test'
255
+ say("Creating a new trac site...")
256
+ result = `trac-admin #{trac_dir} initenv #{project_name} sqlite:#{trac_dir}/db/trac.db svn #{svn_dir}` if DEV_ENV != 'test'
247
257
  FileUtils.chown_R('www-data', 'www-data', trac_dir, :verbose => true) if DEV_ENV != 'test'
248
258
  FileUtils.mkdir_p("#{trac_dir}/conf") if DEV_ENV == 'test' # fake the folder for tests
249
259
 
250
260
  # install shared trac.ini
251
261
  trac_ini_template = File.join(SUBTRAC_ROOT, @APP_CONFIG[:templates][:trac])
252
- parse_template(trac_ini_template,"#{trac_dir}/conf/trac.ini",binding)
262
+ parse_template(trac_ini_template,File.join(trac_dir,"/conf/trac.ini"),binding)
253
263
 
254
264
  # remove custom templates directory so trac uses the shared location (while we wait for trac patch)
255
265
  FileUtils.rm_rf("#{trac_dir}/templates")
256
266
 
257
- puts "Setting up default trac permission..."
267
+ say("Setting up default trac permission...")
258
268
  # set up trac permissions
259
269
  @APP_CONFIG[:trac][:permissions].each do |key, value|
260
270
  `trac-admin #{trac_dir} permission add #{key} #{value}` if DEV_ENV != 'test'
261
271
  end
262
272
 
263
- puts "Adding default trac wiki pages..."
273
+ say("Adding default trac wiki pages...")
264
274
  # this needs to loop through the directory and import all pages
265
275
  Dir.foreach("#{project_template}/trac/wiki/.") do |file|
266
276
  # do something with the file here
@@ -273,7 +283,6 @@ module Subtrac
273
283
  end
274
284
 
275
285
  end
276
- =end
277
286
  end
278
287
 
279
288
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keithsalisbury-subtrac
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Salisbury
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-16 00:00:00 -07:00
12
+ date: 2009-04-17 00:00:00 -07:00
13
13
  default_executable: subtrac
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -90,7 +90,7 @@ requirements: []
90
90
  rubyforge_project:
91
91
  rubygems_version: 1.2.0
92
92
  signing_key:
93
- specification_version: 2
93
+ specification_version: 3
94
94
  summary: Simple and opinionated helper for creating and managing subversion and trac projects.
95
95
  test_files: []
96
96