projektbauer 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/.gitignore +20 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +118 -0
  5. data/lib/projektbauer.rb +466 -0
  6. data/lib/projektbauer/erb/index_html.erb +6 -0
  7. data/lib/projektbauer/erb/post-commit.erb +24 -0
  8. data/lib/projektbauer/erb/project_location_httpd_conf.erb +31 -0
  9. data/lib/projektbauer/erb/svn_authz_file.erb +15 -0
  10. data/lib/projektbauer/erb/trac.ini.erb +258 -0
  11. data/lib/projektbauer/erb/virtual_host_httpd_conf.erb +27 -0
  12. data/lib/projektbauer/version.rb +3 -0
  13. data/projektbauer.gemspec +30 -0
  14. data/rakefile.rb +22 -0
  15. data/spec/reference/domain_01/include_locations.httpd.conf +2 -0
  16. data/spec/reference/domain_01/project_01/Feldbauer-environment.htdigest +8 -0
  17. data/spec/reference/domain_01/project_01/Feldbauer-environment.htdigest.txt +11 -0
  18. data/spec/reference/domain_01/project_01/project_01.dav_svn_authz +15 -0
  19. data/spec/reference/domain_01/project_01/project_01.httpd.conf +31 -0
  20. data/spec/reference/domain_01/project_02/Feldbauer-environment.htdigest +7 -0
  21. data/spec/reference/domain_01/project_02/Feldbauer-environment.htdigest.txt +9 -0
  22. data/spec/reference/domain_01/project_02/project_02.dav_svn_authz +15 -0
  23. data/spec/reference/domain_01/project_02/project_02.httpd.conf +31 -0
  24. data/spec/reference/domain_01/virtual_host.httpd.conf +43 -0
  25. data/spec/reference/domain_01/www/index.html +6 -0
  26. data/spec/reference/domain_02/include_locations.httpd.conf +1 -0
  27. data/spec/reference/domain_02/project_01/Feldbauer-environment.htdigest +7 -0
  28. data/spec/reference/domain_02/project_01/Feldbauer-environment.htdigest.txt +9 -0
  29. data/spec/reference/domain_02/project_01/project_01.dav_svn_authz +15 -0
  30. data/spec/reference/domain_02/project_01/project_01.httpd.conf +31 -0
  31. data/spec/reference/domain_02/virtual_host.httpd.conf +43 -0
  32. data/spec/reference/domain_02/www/index.html +6 -0
  33. data/spec/reference/include_virtual_hosts.httpd.conf +4 -0
  34. data/spec/reference/space domain 02/include_locations.httpd.conf +1 -0
  35. data/spec/reference/space domain 02/space project 01/Feldbauer-environment.htdigest +7 -0
  36. data/spec/reference/space domain 02/space project 01/Feldbauer-environment.htdigest.txt +9 -0
  37. data/spec/reference/space domain 02/space project 01/space project 01.dav_svn_authz +15 -0
  38. data/spec/reference/space domain 02/space project 01/space project 01.httpd.conf +31 -0
  39. data/spec/reference/space domain 02/virtual_host.httpd.conf +43 -0
  40. data/spec/reference/space domain 02/www/index.html +6 -0
  41. data/spec/setup_project_spec.rb +88 -0
  42. data/testresults/test_results.html +308 -0
  43. data/weichel21_projekbauer.rb +28 -0
  44. metadata +251 -0
@@ -0,0 +1,6 @@
1
+ <html>
2
+ <body>
3
+ <p>Please contact the project manager
4
+ <%= "mailto:#{@server_admin}?subject=what%20is%20#{@server_name}" %></p>
5
+ </body>
6
+ </html>
@@ -0,0 +1,24 @@
1
+ #!/bin/sh
2
+ #
3
+ # The hook program typically does not inherit the environment of
4
+ # its parent process. For example, a common problem is for the
5
+ # PATH environment variable to not be set to its usual value, so
6
+ # that subprograms fail to launch unless invoked via absolute path.
7
+ # If you're having unexpected problems with a hook program, the
8
+ # culprit may be unusual (or missing) environment variables.
9
+ #
10
+ # Here is an example hook script, for a Unix /bin/sh interpreter.
11
+ # For more examples and pre-written hooks, see those in
12
+ # /usr/share/subversion/hook-scripts, and in the repository at
13
+ # http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
14
+ # http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
15
+
16
+
17
+ REPOS="$1"
18
+ REV="$2"
19
+
20
+ #"$REPOS"/hooks/mailer.py commit "$REPOS" $REV "$REPOS"/mailer.conf
21
+
22
+ export PYTHON_EGG_CACHE="<%= @_project_trac_dir%>/.egg-cache"
23
+ <%=@trac_admin%> "<%= @_project_trac_dir %>" changeset added "$1" "$2"
24
+
@@ -0,0 +1,31 @@
1
+ DavLockDB "<%= @server_root %>/DavLock"
2
+ #Alias /<%= @virtual_host %>/<%= @project_name %> <%= @server_root %>/<%= @virtual_host %>/<%= @project_name %>/
3
+ ScriptAlias /<%= @project_name %>/trac/ <%= @server_root %>/<%= @virtual_host %>/<%= @project_name %>/trac/cgi-bin/trac.fcgi/
4
+
5
+ <Location /<%= @project_name %>/svn>
6
+ DAV svn
7
+ #todo: investigate usage of parentpath
8
+ SVNPath <%= @_project_svn_dir %>
9
+
10
+ AuthType Digest
11
+ AuthName "<%= @project_realm %>"
12
+ AuthDigestDomain https://<%= @server_name %>:<%= @server_port_ssl %>/<%= @project_name %>
13
+ AuthDigestProvider file
14
+ AuthUserFile <%= @_project_auth_user_file %>
15
+ AuthzSVNAccessFile <%= @_project_svn_authz_file %>
16
+ <LimitExcept OPTIONS>
17
+ Require valid-user
18
+ </LimitExcept>
19
+ </Location>
20
+
21
+ <Location /<%= @project_name %>/trac/login>
22
+ AuthType Digest
23
+ AuthName "<%= @project_realm %>"
24
+ AuthDigestDomain https://<%= @server_name %>:<%= @server_port_ssl %>/<%= @project_name %>
25
+ AuthDigestProvider file
26
+ AuthUserFile <%= @_project_auth_user_file %>
27
+
28
+ <LimitExcept OPTIONS>
29
+ Require valid-user
30
+ </LimitExcept>
31
+ </Location>
@@ -0,0 +1,15 @@
1
+ ### This file is authorization file for <%= @project_name %>
2
+ # do not remove * = at [/]
3
+
4
+ [groups]
5
+ observer=
6
+ admin=<%= @project_users[:admin].join(", ") %>
7
+ contributor=<%= @project_users[:contributor].join(", ") %>
8
+ observer=<%= @project_users[:observer].join(", ") %>
9
+
10
+
11
+ [/]
12
+ @admin=rw
13
+ @contributor=rw
14
+ @observer=r
15
+ * = r
@@ -0,0 +1,258 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ [attachment]
4
+ max_size = 262144
5
+ max_zip_size = 2097152
6
+ render_unsafe_content = true
7
+
8
+ [browser]
9
+ color_scale = True
10
+ downloadable_paths = /trunk, /branches/*, /tags/*
11
+ hide_properties = svk:merge
12
+ intermediate_color =
13
+ intermediate_point =
14
+ newest_color = (255, 136, 136)
15
+ oldest_color = (136, 136, 255)
16
+ oneliner_properties = trac:summary
17
+ render_unsafe_content = true
18
+ wiki_properties = trac:description
19
+
20
+ [changeset]
21
+ max_diff_bytes = 10000000
22
+ max_diff_files = 0
23
+ wiki_format_messages = true
24
+
25
+ [components]
26
+ pdfredirector.* = enabled
27
+ pdfredirector.pdfredirector.pdfredirector = enabled
28
+ tracopt.ticket.commit_updater.committicketreferencemacro = enabled
29
+ tracopt.ticket.commit_updater.committicketupdater = enabled
30
+ tracopt.versioncontrol.svn.* = enabled
31
+ tracopt.versioncontrol.svn.svn_fs.subversionconnector = enabled
32
+ tracopt.versioncontrol.svn.svn_prop.subversionmergepropertydiffrenderer = enabled
33
+ tracopt.versioncontrol.svn.svn_prop.subversionmergepropertyrenderer = enabled
34
+ tracopt.versioncontrol.svn.svn_prop.subversionpropertyrenderer = enabled
35
+
36
+ [header_logo]
37
+ alt = <%= @project_name %>
38
+ height = -1
39
+ link =
40
+ src = <% "logo-file.png" %>
41
+ width = -1
42
+
43
+ [inherit]
44
+ htdocs_dir =
45
+ plugins_dir =
46
+ templates_dir =
47
+
48
+ [logging]
49
+ log_file = trac.log
50
+ log_level = DEBUG
51
+ log_type = none
52
+
53
+ [milestone]
54
+ stats_provider = DefaultTicketGroupStatsProvider
55
+
56
+ [mimeviewer]
57
+ max_preview_size = 26214400
58
+ mime_map = text/x-dylan:dylan, text/x-idl:ice, text/x-ada:ads:adb, application/pdf:pdf
59
+ mime_map_patterns = text/plain:README|INSTALL|COPYING.*
60
+ pygments_default_style = trac
61
+ pygments_modes =
62
+ tab_width = 8
63
+ treat_as_binary = application/octet-stream, application/pdf, application/postscript, application/msword,application/rtf,
64
+
65
+ [notification]
66
+ admit_domains =
67
+ always_notify_owner = true
68
+ always_notify_reporter = true
69
+ always_notify_updater = true
70
+ ambiguous_char_width = single
71
+ batch_subject_template = $prefix Batch modify: $tickets_descr
72
+ email_sender = SmtpEmailSender
73
+ ignore_domains =
74
+ mime_encoding = none
75
+ sendmail_path = sendmail
76
+ smtp_always_bcc =
77
+ smtp_always_cc =
78
+ smtp_default_domain = <%= @smtp_default_domain %>
79
+ smtp_enabled = true
80
+ smtp_from = <%= @smtp_from %>
81
+ smtp_from_author = false
82
+ smtp_from_name = <%= @smtp_from_name %>
83
+ smtp_password = <%= @smtp_password %>
84
+ smtp_port = <%= @smtp_port %>
85
+ smtp_replyto = <%= @smtp_replyto %>
86
+ smtp_server = <%= @smtp_server %>
87
+ smtp_subject_prefix = __default__
88
+ smtp_user = <%= @smtp_user %>
89
+ ticket_subject_template = $prefix #$ticket.id: $summary
90
+ use_public_cc = false
91
+ use_short_addr = false
92
+ use_tls = false
93
+
94
+ [project]
95
+ admin =
96
+ admin_trac_url = .
97
+ descr = <%= @project_name %>
98
+ footer = Visit the Trac open source project at<br /><a href="http://trac.edgewall.org/">http://trac.edgewall.org/</a>
99
+ icon = common/trac.ico
100
+ name = <%= @project_name %>
101
+ url =
102
+
103
+ [query]
104
+ default_anonymous_query = status!=closed&cc~=$USER
105
+ default_query = status!=closed&owner=$USER
106
+ items_per_page = 100
107
+ ticketlink_query = ?status=!closed
108
+
109
+ [report]
110
+ items_per_page = 100
111
+ items_per_page_rss = 0
112
+
113
+ [revisionlog]
114
+ default_log_limit = 100
115
+ graph_colors = ['#cc0', '#0c0', '#0cc', '#00c', '#c0c', '#c00']
116
+
117
+ [roadmap]
118
+ stats_provider = DefaultTicketGroupStatsProvider
119
+
120
+ [search]
121
+ min_query_length = 3
122
+
123
+ [ticket]
124
+ default_cc =
125
+ default_component =
126
+ default_description =
127
+ default_keywords =
128
+ default_milestone =
129
+ default_owner = < default >
130
+ default_priority = major
131
+ default_resolution = fixed
132
+ default_severity =
133
+ default_summary =
134
+ default_type = defect
135
+ default_version =
136
+ max_comment_size = 262144
137
+ max_description_size = 262144
138
+ preserve_newlines = default
139
+ restrict_owner = false
140
+ workflow = ConfigurableTicketWorkflow
141
+
142
+ [ticket-workflow]
143
+ accept = new,assigned -> assigned
144
+ accept.operations = set_owner_to_self
145
+ accept.permissions = TICKET_MODIFY
146
+
147
+ leave = * -> *
148
+ leave.default = 1
149
+ leave.operations = leave_status
150
+
151
+ reassign = new -> new
152
+ reassign.operations = set_owner
153
+ reassign.permissions = TICKET_MODIFY
154
+
155
+ reassignAssigned = assigned -> assigned
156
+ reassignAssigned.name = reassign
157
+ reassignAssigned.operations = set_owner
158
+ reassignAssigned.permissions = TICKET_MODIFY
159
+
160
+ reassignReopen = reopened -> reopened
161
+ reassignReopen.name = reassign
162
+ reassignReopen.operations = set_owner
163
+ reassignReopen.permissions = TICKET_MODIFY
164
+
165
+
166
+ reassignReview = to_be_verified -> to_be_verified
167
+ reassignReview.name = reassign
168
+ reassignReview.operations = set_owner
169
+ reassignReview.permissions = TICKET_MODIFY
170
+
171
+ reopen = closed,to_be_deployed -> reopened
172
+ reopen.operations = set_owner,del_resolution
173
+ reopen.permissions = TICKET_CREATE
174
+
175
+ resolve = new,assigned,reopened,to_be_verified -> closed
176
+ resolve.operations = set_resolution
177
+ resolve.permissions = TICKET_MODIFY
178
+
179
+ review = new, reopened, assigned -> to_be_verified
180
+ review.name = review
181
+ review.operations = set_owner
182
+ review.permissions = TICKET_MODIFY
183
+
184
+ reject = to_be_verified -> reopened
185
+ reject.name = reopen
186
+ reject.operations = set_owner
187
+ reject.permissions = TICKET_MODIFY
188
+
189
+ review_deploy = to_be_verified -> to_be_deployed
190
+ review_deploy.name = deploy
191
+ review_deploy.operations = set_owner
192
+ review_deploy.permissions = TICKET_MODIFY
193
+
194
+ deploy = to_be_deployed -> closed
195
+ deploy.name = release
196
+ deploy.operations = set_owner, set_resolution
197
+ deploy.permissions = TICKET_MODIFY
198
+
199
+
200
+ [timeline]
201
+ abbreviated_messages = True
202
+ changeset_collapse_events = false
203
+ changeset_long_messages = false
204
+ changeset_show_files = 0
205
+ default_daysback = 30
206
+ max_daysback = 90
207
+ newticket_formatter = oneliner
208
+ ticket_show_details = true
209
+
210
+ [trac]
211
+ auth_cookie_lifetime = 0
212
+ auth_cookie_path =
213
+ authz_file =
214
+ authz_module_name =
215
+ auto_preview_timeout = 2.0
216
+ auto_reload = False
217
+ backup_dir = db
218
+ base_url =
219
+ check_auth_ip = false
220
+ database = sqlite:db/trac.db
221
+ debug_sql = False
222
+ default_charset = utf-8
223
+ default_dateinfo_format = relative
224
+ genshi_cache_size = 128
225
+ htdocs_location =
226
+ ignore_auth_case = false
227
+ jquery_location =
228
+ jquery_ui_location =
229
+ jquery_ui_theme_location =
230
+ mainnav = wiki, timeline, roadmap, browser, tickets, newticket, search
231
+ metanav = login, logout, prefs, help, about
232
+ mysqldump_path = mysqldump
233
+ never_obfuscate_mailto = false
234
+ permission_policies = DefaultPermissionPolicy, LegacyAttachmentPolicy
235
+ permission_store = DefaultPermissionStore
236
+ pg_dump_path = pg_dump
237
+ repository_dir =
238
+ repository_sync_per_request = (default)
239
+ repository_type = svn
240
+ resizable_textareas = true
241
+ secure_cookies = False
242
+ show_email_addresses = false
243
+ show_ip_addresses = false
244
+ timeout = 20
245
+ use_base_url_for_redirect = False
246
+
247
+ [versioncontrol]
248
+ allowed_repository_dir_prefixes =
249
+
250
+
251
+
252
+ [wiki]
253
+ ignore_missing_pages = false
254
+ max_size = 262144
255
+ render_unsafe_content = false
256
+ safe_schemes = cvs, file, ftp, git, irc, http, https, news, sftp, smb, ssh, svn, svn+ssh
257
+ split_page_names = false
258
+
@@ -0,0 +1,27 @@
1
+
2
+ ###
3
+ # virtual host for <%= server_name %> ssl
4
+ #
5
+ NameVirtualHost <%= @virtual_host_ip %>:<%= @server_port_ssl %>
6
+ <VirtualHost <%= @virtual_host_ip %>:<%= @server_port_ssl %>>
7
+ ServerName <%= @server_name %>
8
+ ServerAdmin <%= @server_admin %>
9
+ DocumentRoot <%= @_document_root_dir %>
10
+ #CustomLog /home/log/access_log mesos1
11
+
12
+ SSLEngine on
13
+ #todo make location of certificate configurable
14
+ SSLCertificateKeyFile /etc/ssl/localcerts/<%= @server_name %>.key
15
+ SSLCertificateFile /etc/ssl/localcerts/<%= @server_name %>.pem
16
+ SetEnvIf User-Agent ".*MSIE.*" \
17
+ nokeepalive ssl-unclean-shutdown \
18
+ downgrade-1.0 force-response-1.0
19
+ <Files ~ "\.(cgi|shtml|phtml|php3?)$">
20
+ SSLOptions +StdEnvVars
21
+ </Files>
22
+
23
+ ###
24
+ # this file contains the locations for <%= server_name %>
25
+ Include "<%= @_virtual_host_locations_httpd_conf %>
26
+
27
+ </VirtualHost>
@@ -0,0 +1,3 @@
1
+ module Projektbauer
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'projektbauer/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "projektbauer"
8
+ spec.version = Projektbauer::VERSION
9
+ spec.authors = ["Bernhard Weichel"]
10
+ spec.email = ["github.com@nospam.weichel21.de"]
11
+ spec.description = %q{This gem creates and maintaines an SVN/Trac environment}
12
+ spec.summary = %q{Create an SVN/Trac environment}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "inifile", "~> 2.0.2"
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "rspec"
26
+ spec.add_development_dependency "yard"
27
+ spec.add_development_dependency "redcarpet"
28
+ spec.add_development_dependency "wortsammler"
29
+ spec.add_development_dependency "pry"
30
+ end
@@ -0,0 +1,22 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+ require 'rake/clean'
4
+
5
+ desc "Run specs"
6
+ RSpec::Core::RakeTask.new do |t|
7
+ t.pattern = "./**/*_spec.rb" # don't need this, it's default.
8
+ t.rspec_opts = ['-fd -fd --out ./testresults/test_results.log -fh --out ./testresults/test_results.html']
9
+ # Put spec opts in a file named .rspec in root
10
+ end
11
+
12
+
13
+ desc "document (yard) helpers defined here"
14
+ task :doc do
15
+ sh "yard --markup markdown doc . "
16
+ end
17
+
18
+ CLEAN << "spec/tmp_output"
19
+
20
+ task :default do
21
+ sh "rake -T"
22
+ end
@@ -0,0 +1,2 @@
1
+ Include /Volumes/Macintosh HD/Users/beweiche/beweiche_noTimeMachine/207_projektbauer-gem/spec/tmp_output/domain_01/project_01/project_01.httpd.conf
2
+ Include /Volumes/Macintosh HD/Users/beweiche/beweiche_noTimeMachine/207_projektbauer-gem/spec/tmp_output/domain_01/project_02/project_02.httpd.conf
@@ -0,0 +1,8 @@
1
+ admin.first:Feldbauer-environment:9274beeb33f01ed1ddb17a54f88b8d0f
2
+ admin.othersecond:Feldbauer-environment:66ca6257c9fef977044cc85f8547e0b0
3
+ contributor.first:Feldbauer-environment:fb70cd5036b23409fcc0b07cfd1a2f13
4
+ contributor.second:Feldbauer-environment:278a73f0b1cb67812af191cd5a328faf
5
+ contributor.third:Feldbauer-environment:93874aac447c448cef70aca853d698d3
6
+ observer.first:Feldbauer-environment:3c7aff341e6062eedfbc1404fcc8fa65
7
+ observer.second:Feldbauer-environment:162a81a2adfdc74ed71b25ec9cf35b1d
8
+ observer.third:Feldbauer-environment:88da6eedc843bdb92a7e75f8c6f188e1
@@ -0,0 +1,11 @@
1
+ generated passwords for Feldbauer-environment
2
+
3
+ admin.first => <password unchanged>
4
+ admin.othersecond => cmxnmzncdk
5
+ admin.second => <user deleted>
6
+ contributor.first => <password unchanged>
7
+ contributor.second => <password unchanged>
8
+ contributor.third => <password unchanged>
9
+ observer.first => <password unchanged>
10
+ observer.second => <password unchanged>
11
+ observer.third => kplntussvf