keithsalisbury-subtrac 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +1 -1
- data/bin/subtrac +2 -0
- data/lib/subtrac.rb +85 -50
- data/lib/subtrac/config/config.yml +22 -19
- data/lib/subtrac/templates/location.erb +2 -2
- data/lib/subtrac/templates/projects/blank/trac/wiki/WikiStart +1 -1
- data/lib/subtrac/templates/trac.erb +1 -1
- data/lib/subtrac/templates/vhost.erb +6 -6
- metadata +1 -105
- data/lib/subtrac/trac-plugins/advancedticketworkflowplugin/advancedworkflow/__init__.py +0 -0
- data/lib/subtrac/trac-plugins/advancedticketworkflowplugin/advancedworkflow/controller.py +0 -419
- data/lib/subtrac/trac-plugins/advancedticketworkflowplugin/setup.cfg +0 -3
- data/lib/subtrac/trac-plugins/advancedticketworkflowplugin/setup.py +0 -20
- data/lib/subtrac/trac-plugins/clientsplugin/clients/__init__.py +0 -0
- data/lib/subtrac/trac-plugins/clientsplugin/clients/action.py +0 -28
- data/lib/subtrac/trac-plugins/clientsplugin/clients/action_email.py +0 -168
- data/lib/subtrac/trac-plugins/clientsplugin/clients/action_zendesk_forum.py +0 -137
- data/lib/subtrac/trac-plugins/clientsplugin/clients/admin.py +0 -91
- data/lib/subtrac/trac-plugins/clientsplugin/clients/api.py +0 -199
- data/lib/subtrac/trac-plugins/clientsplugin/clients/client.py +0 -105
- data/lib/subtrac/trac-plugins/clientsplugin/clients/events.py +0 -287
- data/lib/subtrac/trac-plugins/clientsplugin/clients/eventsadmin.py +0 -71
- data/lib/subtrac/trac-plugins/clientsplugin/clients/htdocs/clients.css +0 -4
- data/lib/subtrac/trac-plugins/clientsplugin/clients/model.py +0 -135
- data/lib/subtrac/trac-plugins/clientsplugin/clients/processor.py +0 -70
- data/lib/subtrac/trac-plugins/clientsplugin/clients/reportmanager.py +0 -142
- data/lib/subtrac/trac-plugins/clientsplugin/clients/reports.py +0 -231
- data/lib/subtrac/trac-plugins/clientsplugin/clients/summary.py +0 -27
- data/lib/subtrac/trac-plugins/clientsplugin/clients/summary_milestone.py +0 -152
- data/lib/subtrac/trac-plugins/clientsplugin/clients/summary_ticketchanges.py +0 -160
- data/lib/subtrac/trac-plugins/clientsplugin/clients/templates/admin_client_events.html +0 -124
- data/lib/subtrac/trac-plugins/clientsplugin/clients/templates/admin_clients.html +0 -134
- data/lib/subtrac/trac-plugins/clientsplugin/cron/changes.xslt +0 -132
- data/lib/subtrac/trac-plugins/clientsplugin/cron/run-client-event +0 -97
- data/lib/subtrac/trac-plugins/clientsplugin/cron/summary.xslt +0 -161
- data/lib/subtrac/trac-plugins/clientsplugin/setup.py +0 -43
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/__init__.py +0 -4
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/burndownchart.py +0 -273
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/hoursinplaceeditor.py +0 -44
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/hoursremaining.py +0 -36
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/htdocs/jquery-1.2.3.min.js +0 -32
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/htdocs/jquery.jeditable.js +0 -409
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/htdocs/jquery.jeditable.mini.js +0 -30
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/templates/edithours.html +0 -53
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/tests/burndownchart.py +0 -181
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/tests/hoursremaining.py +0 -66
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/tests/workloadchart.py +0 -47
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/utils.py +0 -93
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/workloadchart.py +0 -86
- data/lib/subtrac/trac-plugins/estimationtoolsplugin/setup.py +0 -20
- data/lib/subtrac/trac-plugins/timingandestimationplugin/scripts/SumRollups.js +0 -23
- data/lib/subtrac/trac-plugins/timingandestimationplugin/scripts/adw_tracdb.py +0 -128
- data/lib/subtrac/trac-plugins/timingandestimationplugin/scripts/git-post-receive +0 -40
- data/lib/subtrac/trac-plugins/timingandestimationplugin/scripts/trac-post-commit.py +0 -285
- data/lib/subtrac/trac-plugins/timingandestimationplugin/scripts/trac_billing.py +0 -173
- data/lib/subtrac/trac-plugins/timingandestimationplugin/scripts/utils/__init__.py +0 -0
- data/lib/subtrac/trac-plugins/timingandestimationplugin/scripts/utils/mail.py +0 -164
- data/lib/subtrac/trac-plugins/timingandestimationplugin/setup.py +0 -69
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/__init__.py +0 -1
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/api.py +0 -292
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/blackmagic.py +0 -172
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/dbhelper.py +0 -178
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/billingplugin.css +0 -25
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/field_disabler.js +0 -6
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/formatDate.js +0 -356
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/js/tip_centerwindow.js +0 -100
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/js/tip_followscroll.js +0 -84
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/js/wz_tooltip.js +0 -1149
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/linkifyer.js +0 -119
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/query.js +0 -73
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/ticket.js +0 -165
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/query_webui.py +0 -28
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/reportmanager.py +0 -221
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/reports.py +0 -675
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/reports_filter.py +0 -150
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/statuses.py +0 -25
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/tande_filters.py +0 -131
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/templates/billing.cs +0 -84
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/templates/billing.html +0 -104
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/ticket_daemon.py +0 -194
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/ticket_policy.py +0 -62
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/ticket_webui.py +0 -28
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/usermanual.py +0 -127
- data/lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/webui.py +0 -129
- data/lib/subtrac/trac-plugins/worklogplugin/setup.py +0 -29
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/__init__.py +0 -1
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/api.py +0 -187
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/jqModal.css +0 -40
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/jqModal.js +0 -67
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/jquery.mousewheel.pack.js +0 -12
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/jquery.timeentry.pack.js +0 -7
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/tracWorklog.js +0 -40
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/ui.datepicker.css +0 -208
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/ui.datepicker.js +0 -1439
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/work.png +0 -0
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/work.xcf +0 -0
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/worklogplugin.css +0 -80
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/workstart.png +0 -0
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/workstop.png +0 -0
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/manager.py +0 -336
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/reports.py +0 -598
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/templates/worklog.html +0 -45
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/templates/worklog_stop.html +0 -70
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/templates/worklog_user.html +0 -40
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/templates/worklog_webadminui.html +0 -59
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/ticket_daemon.py +0 -33
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/ticket_filter.py +0 -153
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/timeline_hook.py +0 -96
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/usermanual.py +0 -29
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/util.py +0 -31
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/webadminui.py +0 -47
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/webui.py +0 -174
- data/lib/subtrac/trac-plugins/worklogplugin/worklog/xmlrpc.py +0 -73
data/VERSION.yml
CHANGED
data/bin/subtrac
CHANGED
data/lib/subtrac.rb
CHANGED
@@ -41,7 +41,11 @@ require 'fileutils'
|
|
41
41
|
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
|
46
|
+
|
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
|
+
|
45
49
|
module Commands
|
46
50
|
class Install
|
47
51
|
def initialize(args, options)
|
@@ -51,8 +55,8 @@ module Subtrac
|
|
51
55
|
end
|
52
56
|
class Create
|
53
57
|
def initialize(args, options)
|
54
|
-
project = ask("What is the name of the project you would like to create?") if !options.project
|
55
|
-
client = ask("Which client is this project for?") if !options.client
|
58
|
+
project = ask("What is the name of the project you would like to create? ") if !options.project
|
59
|
+
client = ask("Which client is this project for? ") if !options.client
|
56
60
|
Subtrac.load_config()
|
57
61
|
Subtrac.create_project(options.project,options.client)
|
58
62
|
end
|
@@ -61,31 +65,39 @@ module Subtrac
|
|
61
65
|
|
62
66
|
# Install
|
63
67
|
def self.install(args,options)
|
68
|
+
puts "\n==== Installing development server files ===="
|
64
69
|
# Ask if the user agrees (yes or no)
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
70
|
+
confirm_clean = agree("Are you sure you would like a clean install? [Y/n]") if options.clean
|
71
|
+
# clear previous data
|
72
|
+
clean() if confirm_clean
|
73
|
+
# right lets install
|
74
|
+
change_server_name = agree("The default server name is \"#{@server_name}\". Would you like to change this? [Y/n]")
|
75
|
+
@server_name = ask("What would you like to call your new development server? ") if change_server_name
|
76
|
+
|
77
|
+
create_environment_directories()
|
73
78
|
install_common_files()
|
74
79
|
create_virtual_host()
|
80
|
+
confirm_default_client = agree("Do you want to create a default client project? [Y/n]")
|
75
81
|
# create default project and client
|
76
|
-
|
77
|
-
|
82
|
+
if confirm_default_client
|
83
|
+
change_client = agree("The default client name is \"#{@default_client}\". Would you like to change this? [Y/n]")
|
84
|
+
@default_client = ask("What client name would you like to use? ") if change_client
|
85
|
+
change_project = agree("The default project name is \"#{@default_project}\". Would you like to change this? [Y/n]")
|
86
|
+
@default_project = ask("What would you like to call your new project? ") if change_project
|
87
|
+
create_project(@default_project,@default_client)
|
88
|
+
end
|
78
89
|
end
|
79
90
|
|
80
91
|
private
|
81
92
|
|
93
|
+
=begin
|
82
94
|
# Loads the configuration YML file
|
83
95
|
def self.load_config
|
84
96
|
puts "\n==== Loading configuration file ===="
|
85
97
|
# load configuration file
|
86
98
|
begin
|
87
|
-
|
88
|
-
yamlFile = YAML.
|
99
|
+
raw_config = File.read(SUBTRAC_ROOT + "/config/config.yml")
|
100
|
+
yamlFile = YAML.load(raw_config)
|
89
101
|
rescue Exception => e
|
90
102
|
raise StandardError, "Config #{file_path} could not be loaded."
|
91
103
|
end
|
@@ -98,12 +110,39 @@ module Subtrac
|
|
98
110
|
else
|
99
111
|
raise StandardError, "config/config.yml does not exist."
|
100
112
|
end
|
113
|
+
puts "\n==== Installation options ===="
|
114
|
+
|
115
|
+
say("Setting up default configuration...")
|
116
|
+
@server_name = @APP_CONFIG[:server_name]
|
117
|
+
@server_hostname = @APP_CONFIG[:server_hostname]
|
118
|
+
@server_ip = @APP_CONFIG[:server_ip]
|
119
|
+
|
120
|
+
@default_client = @APP_CONFIG[:default_client]
|
121
|
+
@default_project = @APP_CONFIG[:default_project]
|
122
|
+
|
123
|
+
@install_dir = @APP_CONFIG[:installation_dir]
|
124
|
+
@docs_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:docs])
|
125
|
+
@conf_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:conf])
|
126
|
+
@locations_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:conf_locations])
|
127
|
+
@svn_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:svn])
|
128
|
+
@trac_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:trac])
|
129
|
+
@temp_dir = File.join(@install_dir,@APP_CONFIG[:dirs][:temp])
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
# Ask the user for configuration details
|
134
|
+
def self.get_config
|
135
|
+
|
101
136
|
end
|
102
137
|
|
103
138
|
# creates a directory if it does not exist
|
104
139
|
def self.create_if_missing *names
|
105
|
-
|
106
|
-
|
140
|
+
names.each do |name|
|
141
|
+
unless File.directory?(name)
|
142
|
+
puts "Creating directory called #{names}..."
|
143
|
+
FileUtils.mkdir_p(name)
|
144
|
+
end
|
145
|
+
end
|
107
146
|
end
|
108
147
|
|
109
148
|
# publishes an erb template
|
@@ -124,24 +163,21 @@ module Subtrac
|
|
124
163
|
# creates a new virtual host and reloads apache and enables the new virtual host
|
125
164
|
def self.create_virtual_host
|
126
165
|
puts "\n==== Creating new virtual host ===="
|
127
|
-
vhost_template = File.join(
|
128
|
-
new_vhost =
|
129
|
-
puts new_vhost
|
166
|
+
vhost_template = File.join(SUBTRAC_ROOT, @APP_CONFIG[:templates][:virtual_host])
|
167
|
+
new_vhost = File.join(@conf_dir,@server_hostname)
|
130
168
|
parse_template(vhost_template,new_vhost,binding)
|
131
169
|
# reload apache configuration
|
132
170
|
`/etc/init.d/apache2 force-reload` if DEV_ENV != 'test'
|
133
|
-
`a2ensite #{@
|
171
|
+
`a2ensite #{@server_hostname}` if DEV_ENV != 'test'
|
134
172
|
end
|
135
173
|
|
136
174
|
def self.install_common_files
|
137
175
|
puts "\n==== Installing common files ===="
|
138
|
-
# TODO: implement a
|
176
|
+
# TODO: implement a mask for .svn folders
|
139
177
|
# TODO: refactor /common to the app config
|
140
|
-
common_dir = File.join(
|
141
|
-
puts common_dir
|
178
|
+
common_dir = File.join(SUBTRAC_ROOT, "common")
|
142
179
|
source = Dir.glob("#{common_dir}/.")
|
143
|
-
|
144
|
-
dest = @APP_CONFIG[:dirs][:document]
|
180
|
+
dest = @docs_dir
|
145
181
|
FileUtils.cp_r(source,dest)
|
146
182
|
end
|
147
183
|
|
@@ -149,63 +185,61 @@ module Subtrac
|
|
149
185
|
puts "\n==== Creating new environment directories ===="
|
150
186
|
# create the environment directories
|
151
187
|
@APP_CONFIG[:dirs].each do |key, value|
|
152
|
-
create_if_missing value
|
188
|
+
create_if_missing File.join(@install_dir,value)
|
153
189
|
end
|
154
190
|
end
|
155
191
|
|
156
192
|
def self.clean
|
157
193
|
puts "\n==== Remove old data if exists ===="
|
158
194
|
@APP_CONFIG[:dirs].each do |key, value|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
FileUtils.rm_rf value
|
163
|
-
end
|
195
|
+
#TODO: Ask for confirmation - yes,no,All
|
196
|
+
puts "Deleting #{value}"
|
197
|
+
FileUtils.rm_rf value
|
164
198
|
end
|
165
199
|
end
|
166
200
|
|
167
201
|
def self.create_client(name)
|
168
|
-
puts "\n==== Create a new client #{name} ===="
|
202
|
+
puts "\n==== Create a new client called #{name} ===="
|
169
203
|
client_name = name.downcase
|
170
204
|
# create apache configuration
|
171
|
-
|
172
|
-
|
173
|
-
location_conf = "#{@APP_CONFIG[:dirs][:conf_locations]}/#{client_name}.conf"
|
205
|
+
location_template = File.join(SUBTRAC_ROOT, @APP_CONFIG[:templates][:location])
|
206
|
+
location_conf = File.join(@locations_dir,client_name,".conf")
|
174
207
|
parse_template(location_template,location_conf,binding)
|
175
208
|
`/etc/init.d/apache2 force-reload` if DEV_ENV != 'test'
|
176
209
|
|
177
210
|
# create svn+trac directory
|
178
|
-
create_if_missing
|
179
|
-
create_if_missing
|
211
|
+
create_if_missing File.join(@svn_dir,client_name)
|
212
|
+
create_if_missing File.join(@trac_dir,client_name)
|
180
213
|
end
|
181
214
|
|
182
215
|
def self.create_project(project, client)
|
183
|
-
puts "\n==== Create a new project #{project} for #{client} ===="
|
216
|
+
puts "\n==== Create a new project called #{project} for #{client} ===="
|
184
217
|
|
185
218
|
client_name = client.downcase
|
186
219
|
project_name = project.downcase
|
187
220
|
|
188
221
|
# create client directory if needed
|
189
|
-
create_client(client_name) if (!File.directory?
|
222
|
+
create_client(client_name) if (!File.directory? File.join(@svn_dir,client_name))
|
190
223
|
|
191
|
-
svn_dir =
|
192
|
-
trac_dir =
|
224
|
+
svn_dir = File.join(@svn_dir,client_name,project_name)
|
225
|
+
trac_dir = File.join(@trac_dir,client_name,project_name)
|
193
226
|
if (File.directory? svn_dir) then
|
194
227
|
raise StandardError, "A project called #{project} already exists in the #{client} repository. Would you like to replace it?"
|
195
228
|
end
|
196
229
|
|
197
|
-
project_template = File.join(
|
230
|
+
project_template = File.join(SUBTRAC_ROOT, @APP_CONFIG[:templates][:projects],@APP_CONFIG[:default_project_template])
|
198
231
|
|
199
232
|
# copy template svn project to a temp folder, then svn import it into the repo
|
200
|
-
svn_template_dir = "
|
201
|
-
temp_dir =
|
233
|
+
svn_template_dir = File.join(project_template,"svn")
|
234
|
+
temp_dir = File.join(@temp_dir,project_name)
|
202
235
|
FileUtils.cp_r(svn_template_dir,temp_dir)
|
203
236
|
|
204
237
|
# create a new subversion repository
|
205
238
|
`svnadmin create #{svn_dir}` if DEV_ENV != 'test'
|
206
239
|
|
207
|
-
# import into svn
|
240
|
+
# import into svn
|
208
241
|
`svn import #{temp_dir} file:///#{svn_dir} --message "initial import"` if DEV_ENV != 'test'
|
242
|
+
# delete the temporary directory
|
209
243
|
FileUtils.rm_r(temp_dir, :force => true)
|
210
244
|
|
211
245
|
# create a new trac site
|
@@ -214,7 +248,7 @@ module Subtrac
|
|
214
248
|
FileUtils.mkdir_p("#{trac_dir}/conf") if DEV_ENV == 'test' # fake the folder for tests
|
215
249
|
|
216
250
|
# install shared trac.ini
|
217
|
-
trac_ini_template = File.join(
|
251
|
+
trac_ini_template = File.join(SUBTRAC_ROOT, @APP_CONFIG[:templates][:trac])
|
218
252
|
parse_template(trac_ini_template,"#{trac_dir}/conf/trac.ini",binding)
|
219
253
|
|
220
254
|
# remove custom templates directory so trac uses the shared location (while we wait for trac patch)
|
@@ -231,14 +265,15 @@ module Subtrac
|
|
231
265
|
Dir.foreach("#{project_template}/trac/wiki/.") do |file|
|
232
266
|
# do something with the file here
|
233
267
|
unless ['.', '..','.svn'].include? file
|
234
|
-
temp_file =
|
235
|
-
parse_template("
|
268
|
+
temp_file = File.join(@temp_dir,file)
|
269
|
+
parse_template(File.join(project_template,"trac/wiki",file), temp_file, binding)
|
236
270
|
`trac-admin #{trac_dir} wiki import #{file} #{temp_file}` if DEV_ENV != 'test'
|
237
271
|
FileUtils.rm(temp_file)
|
238
272
|
end
|
239
273
|
end
|
274
|
+
|
240
275
|
end
|
241
|
-
|
276
|
+
=end
|
242
277
|
end
|
243
278
|
|
244
279
|
|
@@ -1,27 +1,30 @@
|
|
1
|
-
|
1
|
+
development: &non_production_settings
|
2
|
+
# Things that can be changed
|
2
3
|
:admin:
|
3
4
|
:username: "admin"
|
4
5
|
:password: "6kvCHrTLk3ubo" # passw0rd
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
|
7
|
+
:server_name: "Subtrac Development Server"
|
8
|
+
:server_hostname: "dev.subtrac.com"
|
9
|
+
:server_ip: "192.168.2.1"
|
10
|
+
|
11
|
+
:installation_dir: test
|
12
|
+
|
9
13
|
:dirs:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:temp: test/temp
|
14
|
+
:svn: svn
|
15
|
+
:trac: trac
|
16
|
+
:log: log
|
17
|
+
:docs: www
|
18
|
+
:conf: conf
|
19
|
+
:conf_locations: conf/locations
|
20
|
+
:temp: tmp
|
18
21
|
:urls:
|
19
22
|
:svn: "/svn"
|
20
23
|
:templates:
|
21
|
-
:virtual_host: "
|
22
|
-
:location: "
|
23
|
-
:trac: "
|
24
|
-
:projects: "
|
24
|
+
:virtual_host: "templates/vhost.erb"
|
25
|
+
:location: "templates/location.erb"
|
26
|
+
:trac: "templates/trac.erb"
|
27
|
+
:projects: "templates/projects"
|
25
28
|
|
26
29
|
:default_project_template: "blank"
|
27
30
|
:default_client: "Subtrac"
|
@@ -46,9 +49,9 @@ test:
|
|
46
49
|
admins: admin
|
47
50
|
salisburyk: admin
|
48
51
|
client: clients
|
49
|
-
|
50
52
|
|
51
|
-
|
53
|
+
test:
|
54
|
+
<<: *non_production_settings
|
52
55
|
|
53
56
|
production:
|
54
57
|
|
@@ -2,9 +2,9 @@
|
|
2
2
|
SetHandler mod_python
|
3
3
|
PythonInterpreter main_interpreter
|
4
4
|
PythonHandler trac.web.modpython_frontend
|
5
|
-
PythonOption TracEnvParentDir <%= @
|
5
|
+
PythonOption TracEnvParentDir <%= @trac_dir %>/<%= client_name %>
|
6
6
|
PythonOption TracUriRoot /<%= client_name %>
|
7
|
-
PythonOption TracEnvIndexTemplate <%= @
|
7
|
+
PythonOption TracEnvIndexTemplate <%= @trac_dir %>/<%= client_name %>/trac_theme/htdocs/index/index.html
|
8
8
|
PythonOption PYTHON_EGG_CACHE /tmp
|
9
9
|
</location>
|
10
10
|
<location <%= @APP_CONFIG[:urls][:svn] %>/<%= client_name %>>
|
@@ -13,7 +13,7 @@ This is the home of development for #{client}. This page is editable by design.
|
|
13
13
|
Make sure you have subversion client installed, then you can check the project out using:
|
14
14
|
|
15
15
|
{{{
|
16
|
-
svn checkout http://#{@
|
16
|
+
svn checkout http://#{@server_hostname}#{@APP_CONFIG[:urls][:svn]}/#{client_name}/#{project_name}/trunk #{project_name}
|
17
17
|
}}}
|
18
18
|
|
19
19
|
=== Using SVN ===
|
@@ -1,14 +1,14 @@
|
|
1
1
|
<virtualhost *>
|
2
2
|
ServerAdmin webmaster@localhost
|
3
|
-
ServerName <%= @
|
4
|
-
DocumentRoot <%= @
|
5
|
-
ErrorLog <%= @APP_CONFIG[:dirs][:log] %>/error.<%= @
|
6
|
-
CustomLog <%= @APP_CONFIG[:dirs][:log] %>/access.<%= @
|
3
|
+
ServerName <%= @server_hostname %>
|
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
|
7
7
|
LogLevel error
|
8
8
|
|
9
9
|
RewriteEngine On
|
10
|
-
RewriteRule ^/$ http://<%= @
|
11
|
-
RewriteRule ^/index*$ http://<%= @
|
10
|
+
RewriteRule ^/$ http://<%= @server_hostname %>/saint/public
|
11
|
+
RewriteRule ^/index*$ http://<%= @server_hostname %>/saint/public
|
12
12
|
|
13
13
|
<location />
|
14
14
|
AuthType Basic
|
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.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keith Salisbury
|
@@ -65,110 +65,6 @@ files:
|
|
65
65
|
- lib/subtrac/templates/projects/trac_theme/trac/wiki/WikiStart
|
66
66
|
- lib/subtrac/templates/trac.erb
|
67
67
|
- lib/subtrac/templates/vhost.erb
|
68
|
-
- lib/subtrac/trac-plugins/advancedticketworkflowplugin/advancedworkflow/__init__.py
|
69
|
-
- lib/subtrac/trac-plugins/advancedticketworkflowplugin/advancedworkflow/controller.py
|
70
|
-
- lib/subtrac/trac-plugins/advancedticketworkflowplugin/setup.cfg
|
71
|
-
- lib/subtrac/trac-plugins/advancedticketworkflowplugin/setup.py
|
72
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/__init__.py
|
73
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/action.py
|
74
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/action_email.py
|
75
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/action_zendesk_forum.py
|
76
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/admin.py
|
77
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/api.py
|
78
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/client.py
|
79
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/events.py
|
80
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/eventsadmin.py
|
81
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/htdocs/clients.css
|
82
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/model.py
|
83
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/processor.py
|
84
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/reportmanager.py
|
85
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/reports.py
|
86
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/summary.py
|
87
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/summary_milestone.py
|
88
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/summary_ticketchanges.py
|
89
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/templates/admin_client_events.html
|
90
|
-
- lib/subtrac/trac-plugins/clientsplugin/clients/templates/admin_clients.html
|
91
|
-
- lib/subtrac/trac-plugins/clientsplugin/cron/changes.xslt
|
92
|
-
- lib/subtrac/trac-plugins/clientsplugin/cron/run-client-event
|
93
|
-
- lib/subtrac/trac-plugins/clientsplugin/cron/summary.xslt
|
94
|
-
- lib/subtrac/trac-plugins/clientsplugin/setup.py
|
95
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/__init__.py
|
96
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/burndownchart.py
|
97
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/hoursinplaceeditor.py
|
98
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/hoursremaining.py
|
99
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/htdocs/jquery-1.2.3.min.js
|
100
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/htdocs/jquery.jeditable.js
|
101
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/htdocs/jquery.jeditable.mini.js
|
102
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/templates/edithours.html
|
103
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/tests/burndownchart.py
|
104
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/tests/hoursremaining.py
|
105
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/tests/workloadchart.py
|
106
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/utils.py
|
107
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/estimationtools/workloadchart.py
|
108
|
-
- lib/subtrac/trac-plugins/estimationtoolsplugin/setup.py
|
109
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/scripts/SumRollups.js
|
110
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/scripts/adw_tracdb.py
|
111
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/scripts/git-post-receive
|
112
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/scripts/trac-post-commit.py
|
113
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/scripts/trac_billing.py
|
114
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/scripts/utils/__init__.py
|
115
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/scripts/utils/mail.py
|
116
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/setup.py
|
117
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/__init__.py
|
118
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/api.py
|
119
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/blackmagic.py
|
120
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/dbhelper.py
|
121
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/billingplugin.css
|
122
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/field_disabler.js
|
123
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/formatDate.js
|
124
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/js/tip_centerwindow.js
|
125
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/js/tip_followscroll.js
|
126
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/js/wz_tooltip.js
|
127
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/linkifyer.js
|
128
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/query.js
|
129
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/htdocs/ticket.js
|
130
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/query_webui.py
|
131
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/reportmanager.py
|
132
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/reports.py
|
133
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/reports_filter.py
|
134
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/statuses.py
|
135
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/tande_filters.py
|
136
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/templates/billing.cs
|
137
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/templates/billing.html
|
138
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/ticket_daemon.py
|
139
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/ticket_policy.py
|
140
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/ticket_webui.py
|
141
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/usermanual.py
|
142
|
-
- lib/subtrac/trac-plugins/timingandestimationplugin/timingandestimationplugin/webui.py
|
143
|
-
- lib/subtrac/trac-plugins/worklogplugin/setup.py
|
144
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/__init__.py
|
145
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/api.py
|
146
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/jqModal.css
|
147
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/jqModal.js
|
148
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/jquery.mousewheel.pack.js
|
149
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/jquery.timeentry.pack.js
|
150
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/tracWorklog.js
|
151
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/ui.datepicker.css
|
152
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/ui.datepicker.js
|
153
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/work.png
|
154
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/work.xcf
|
155
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/worklogplugin.css
|
156
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/workstart.png
|
157
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/htdocs/workstop.png
|
158
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/manager.py
|
159
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/reports.py
|
160
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/templates/worklog.html
|
161
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/templates/worklog_stop.html
|
162
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/templates/worklog_user.html
|
163
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/templates/worklog_webadminui.html
|
164
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/ticket_daemon.py
|
165
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/ticket_filter.py
|
166
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/timeline_hook.py
|
167
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/usermanual.py
|
168
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/util.py
|
169
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/webadminui.py
|
170
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/webui.py
|
171
|
-
- lib/subtrac/trac-plugins/worklogplugin/worklog/xmlrpc.py
|
172
68
|
- lib/subtrac/version.rb
|
173
69
|
has_rdoc: true
|
174
70
|
homepage: http://github.com/keithsalisbury/subtrac
|