polisher 0.1 → 0.2

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.
Files changed (103) hide show
  1. data/COPYING +8 -0
  2. data/LICENSE +661 -0
  3. data/README.rdoc +25 -0
  4. data/Rakefile +92 -0
  5. data/TODO +6 -0
  6. data/bin/server +3 -0
  7. data/config/database.yml +8 -43
  8. data/config/polisher.yml +15 -5
  9. data/config.ru +25 -0
  10. data/db/connection.rb +49 -0
  11. data/db/migrations/001_create_sources.rb +27 -0
  12. data/db/migrations/002_create_managed_gems.rb +24 -0
  13. data/db/migrations/003_create_events.rb +27 -0
  14. data/db/models/event.rb +61 -0
  15. data/db/models/managed_gem.rb +111 -0
  16. data/db/models/source.rb +35 -0
  17. data/lib/common.rb +39 -0
  18. data/lib/event_handlers.rb +100 -0
  19. data/lib/sinatra/url_for.rb +40 -0
  20. data/polisher.rb +120 -0
  21. data/public/javascripts/polisher.js +15 -0
  22. data/public/stylesheets/style.css +18 -3
  23. data/spec/event_handlers_spec.rb +164 -0
  24. data/spec/models_spec.rb +193 -0
  25. data/spec/polisher_spec.rb +133 -0
  26. data/spec/spec_helper.rb +44 -0
  27. data/views/gems/index.haml +106 -0
  28. data/views/layout.haml +24 -0
  29. data/views/sources/index.haml +41 -0
  30. metadata +36 -93
  31. data/README +0 -243
  32. data/app/controllers/application_controller.rb +0 -12
  33. data/app/controllers/callback_controller.rb +0 -47
  34. data/app/controllers/manage_controller.rb +0 -112
  35. data/app/helpers/application_helper.rb +0 -3
  36. data/app/models/artifact.rb +0 -21
  37. data/app/models/event_handler.rb +0 -61
  38. data/app/models/gem_search_criteria.rb +0 -24
  39. data/app/models/gem_source.rb +0 -43
  40. data/app/models/managed_gem.rb +0 -47
  41. data/app/views/callback/gem_updated.rhtml +0 -0
  42. data/app/views/layouts/_header.rhtml +0 -8
  43. data/app/views/layouts/index.rhtml +0 -27
  44. data/app/views/manage/create_event_handler.rhtml +0 -15
  45. data/app/views/manage/create_gem.rhtml +0 -15
  46. data/app/views/manage/create_gem_source.rhtml +0 -15
  47. data/app/views/manage/delete_event_handler.rhtml +0 -15
  48. data/app/views/manage/delete_gem.rhtml +0 -15
  49. data/app/views/manage/delete_gem_source.rhtml +0 -15
  50. data/app/views/manage/list.rhtml +0 -66
  51. data/app/views/manage/new_event_handler.rhtml +0 -38
  52. data/app/views/manage/new_gem.rhtml +0 -21
  53. data/app/views/manage/new_gem_search_criteria.rhtml +0 -3
  54. data/app/views/manage/new_gem_source.rhtml +0 -10
  55. data/config/boot.rb +0 -110
  56. data/config/environment.rb +0 -44
  57. data/config/environments/development.rb +0 -17
  58. data/config/environments/production.rb +0 -28
  59. data/config/environments/test.rb +0 -28
  60. data/config/initializers/backtrace_silencers.rb +0 -7
  61. data/config/initializers/inflections.rb +0 -10
  62. data/config/initializers/mime_types.rb +0 -5
  63. data/config/initializers/new_rails_defaults.rb +0 -21
  64. data/config/initializers/session_store.rb +0 -15
  65. data/config/locales/en.yml +0 -5
  66. data/config/routes.rb +0 -44
  67. data/db/migrate/001_create_gem_sources.rb +0 -34
  68. data/db/migrate/002_create_managed_gems.rb +0 -32
  69. data/db/migrate/003_create_gem_search_criterias.rb +0 -33
  70. data/db/migrate/004_create_event_handlers.rb +0 -32
  71. data/db/migrate/005_create_artifacts.rb +0 -32
  72. data/db/schema.rb +0 -42
  73. data/db/seeds.rb +0 -7
  74. data/lib/email_adapter.rb +0 -46
  75. data/lib/gem2rpm.rb +0 -189
  76. data/lib/gem_api_adapter.rb +0 -87
  77. data/lib/rpm_adapter.rb +0 -39
  78. data/public/404.html +0 -30
  79. data/public/422.html +0 -30
  80. data/public/500.html +0 -30
  81. data/public/dispatch.cgi +0 -10
  82. data/public/dispatch.fcgi +0 -24
  83. data/public/dispatch.rb +0 -29
  84. data/public/favicon.ico +0 -0
  85. data/public/images/rails.png +0 -0
  86. data/public/javascripts/application.js +0 -2
  87. data/public/javascripts/controls.js +0 -963
  88. data/public/javascripts/dragdrop.js +0 -973
  89. data/public/javascripts/effects.js +0 -1128
  90. data/public/javascripts/prototype.js +0 -4320
  91. data/public/robots.txt +0 -5
  92. data/script/about +0 -4
  93. data/script/console +0 -3
  94. data/script/dbconsole +0 -3
  95. data/script/destroy +0 -3
  96. data/script/generate +0 -3
  97. data/script/performance/benchmarker +0 -3
  98. data/script/performance/profiler +0 -3
  99. data/script/plugin +0 -3
  100. data/script/runner +0 -3
  101. data/script/server +0 -3
  102. data/tmp/gems/README +0 -1
  103. data/tmp/rpms/README +0 -1
@@ -1,33 +0,0 @@
1
- #
2
- # Copyright (C) 2010 Red Hat, Inc.
3
- # Written by Mohammed Morsi <mmorsi@redhat.com>
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License as published by
7
- # the Free Software Foundation; version 2 of the License.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
- # MA 02110-1301, USA. A copy of the GNU General Public License is
18
- # also available at http://www.gnu.org/copyleft/gpl.html.
19
-
20
- # according to google the plural for "criteria" is "criterion"
21
- # but the active_support inflector begs to differ and I'm not gonna argue :-)
22
- class CreateGemSearchCriterias < ActiveRecord::Migration
23
- def self.up
24
- create_table :gem_search_criterias do |t|
25
- t.string :regex
26
- t.references :gem_source
27
- end
28
- end
29
-
30
- def self.down
31
- drop_table :gem_search_criterias
32
- end
33
- end
@@ -1,32 +0,0 @@
1
- #
2
- # Copyright (C) 2010 Red Hat, Inc.
3
- # Written by Mohammed Morsi <mmorsi@redhat.com>
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License as published by
7
- # the Free Software Foundation; version 2 of the License.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
- # MA 02110-1301, USA. A copy of the GNU General Public License is
18
- # also available at http://www.gnu.org/copyleft/gpl.html.
19
-
20
- class CreateEventHandlers < ActiveRecord::Migration
21
- def self.up
22
- create_table :event_handlers do |t|
23
- t.references :managed_gem
24
- t.string :event
25
- t.string :handler
26
- end
27
- end
28
-
29
- def self.down
30
- drop_table :event_handlers
31
- end
32
- end
@@ -1,32 +0,0 @@
1
- #
2
- # Copyright (C) 2010 Red Hat, Inc.
3
- # Written by Mohammed Morsi <mmorsi@redhat.com>
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License as published by
7
- # the Free Software Foundation; version 2 of the License.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
- # MA 02110-1301, USA. A copy of the GNU General Public License is
18
- # also available at http://www.gnu.org/copyleft/gpl.html.
19
-
20
- class CreateArtifacts < ActiveRecord::Migration
21
- def self.up
22
- create_table :artifacts do |t|
23
- t.references :gem
24
- t.string :type
25
- t.string :location
26
- end
27
- end
28
-
29
- def self.down
30
- drop_table :artifacts
31
- end
32
- end
data/db/schema.rb DELETED
@@ -1,42 +0,0 @@
1
- # This file is auto-generated from the current state of the database. Instead of editing this file,
2
- # please use the migrations feature of Active Record to incrementally modify your database, and
3
- # then regenerate this schema definition.
4
- #
5
- # Note that this schema.rb definition is the authoritative source for your database schema. If you need
6
- # to create the application database on another system, you should be using db:schema:load, not running
7
- # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
8
- # you'll amass, the slower it'll run and the greater likelihood for issues).
9
- #
10
- # It's strongly recommended to check this file into your version control system.
11
-
12
- ActiveRecord::Schema.define(:version => 5) do
13
-
14
- create_table "artifacts", :force => true do |t|
15
- t.integer "gem_id"
16
- t.string "type"
17
- t.string "location"
18
- end
19
-
20
- create_table "event_handlers", :force => true do |t|
21
- t.integer "managed_gem_id"
22
- t.string "event"
23
- t.string "handler"
24
- end
25
-
26
- create_table "gem_search_criterias", :force => true do |t|
27
- t.string "regex"
28
- t.integer "gem_source_id"
29
- end
30
-
31
- create_table "gem_sources", :force => true do |t|
32
- t.string "name"
33
- t.string "uri"
34
- end
35
-
36
- create_table "managed_gems", :force => true do |t|
37
- t.string "name"
38
- t.string "version"
39
- t.integer "gem_source_id"
40
- end
41
-
42
- end
data/db/seeds.rb DELETED
@@ -1,7 +0,0 @@
1
- # This file should contain all the record creation needed to seed the database with its default values.
2
- # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
- #
4
- # Examples:
5
- #
6
- # cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
7
- # Major.create(:name => 'Daley', :city => cities.first)
data/lib/email_adapter.rb DELETED
@@ -1,46 +0,0 @@
1
- # Copyright (C) 2010 Red Hat, Inc.
2
- # Written by Mohammed Morsi <mmorsi@redhat.com>
3
- #
4
- # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; version 2 of the License.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License
14
- # along with this program; if not, write to the Free Software
15
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16
- # MA 02110-1301, USA. A copy of the GNU General Public License is
17
- # also available at http://www.gnu.org/copyleft/gpl.html.
18
-
19
- require 'net/smtp'
20
-
21
- # Adapts an email subsystem to polisher
22
- class EmailAdapter
23
- # send email w/ specified args
24
- def self.send_email(args = {})
25
- server = args[:server]
26
- to = args[:to]
27
- from = args[:from]
28
- body = args[:body]
29
- subject = args[:subject]
30
- logger = args[:logger]
31
-
32
- logger.info ">> sending email to #{to} from #{from} using smtp server #{server}" unless logger.nil?
33
- msg = <<END_OF_MESSAGE
34
- From: #{from}
35
- To: #{to}
36
- Subject: #{subject}
37
-
38
- #{body}
39
- END_OF_MESSAGE
40
-
41
- Net::SMTP.start(server) do |smtp|
42
- smtp.send_message msg, from, to
43
- end
44
- end
45
-
46
- end
data/lib/gem2rpm.rb DELETED
@@ -1,189 +0,0 @@
1
- require 'erb'
2
- require 'socket'
3
- require 'rubygems/format'
4
-
5
- # Adapt to the differences between rubygems < 1.0.0 and after
6
- # Once we can be reasonably certain that everybody has version >= 1.0.0
7
- # all this logic should be killed
8
- GEM_VERSION = Gem::Version.create(Gem::RubyGemsVersion)
9
- HAS_REMOTE_INSTALLER = GEM_VERSION < Gem::Version.create("1.0.0")
10
-
11
- if HAS_REMOTE_INSTALLER
12
- require 'rubygems/remote_installer'
13
- end
14
-
15
- # Extend String with a word_wrap method, which we use in the ERB template
16
- # below. Taken with modification from the word_wrap method in ActionPack.
17
- # Text::Format does the smae thing better.
18
- class String
19
- def word_wrap(line_width = 80)
20
- gsub(/\n/, "\n\n").gsub(/(.{1,#{line_width}})(\s+|$)/, "\\1\n").strip
21
- end
22
- end
23
-
24
- module Gem
25
- class Requirement
26
- def rpm_version_transform(version)
27
- if version == "> 0.0.0"
28
- version = ""
29
- end
30
- version
31
- end
32
-
33
- def to_rpm
34
- result = as_list
35
- return result.map { |version| rpm_version_transform(version) }
36
- end
37
-
38
- end
39
- end
40
-
41
- module Gem2Rpm
42
- Gem2Rpm::VERSION = "0.6.0"
43
-
44
- if HAS_REMOTE_INSTALLER
45
- def self.find_download_url(name, version)
46
- installer = Gem::RemoteInstaller.new
47
- dummy, download_path = installer.find_gem_to_install(name, "=#{version}")
48
- download_path += "/gems/" if download_path.to_s != ""
49
- return download_path
50
- end
51
- else
52
- def self.find_download_url(name, version)
53
- dep = Gem::Dependency.new(name, "=#{version}")
54
- fetcher = Gem::SpecFetcher.fetcher
55
- dummy, download_path = fetcher.find_matching(dep, false, false).first
56
- download_path += "gems/" if download_path.to_s != ""
57
- return download_path
58
- end
59
- end
60
-
61
- def Gem2Rpm.convert(fname, template=TEMPLATE, out=$stdout,
62
- nongem=true, local=false)
63
- format = Gem::Format.from_file_by_path(fname)
64
- spec = format.spec
65
- spec.description ||= spec.summary
66
- download_path = ""
67
- unless local
68
- begin
69
- download_path = find_download_url(spec.name, spec.version)
70
- rescue Gem::Exception => e
71
- $stderr.puts "Warning: Could not retrieve full URL for #{spec.name}\nWarning: Edit the specfile and enter the full download URL as 'Source0' manually"
72
- $stderr.puts "#{e.inspect}"
73
- end
74
- end
75
- template = ERB.new(template, 0, '<>')
76
- out.puts template.result(binding)
77
- end
78
-
79
- # Returns the email address of the packager (i.e., the person running
80
- # gem2spec). Taken from RPM macros if present, constructed from system
81
- # username and hostname otherwise.
82
- def Gem2Rpm.packager()
83
- packager = `rpm --eval '%{packager}'`.chomp
84
- if packager == '' or packager == '%{packager}'
85
- packager = "FIXME"
86
- #packager = "#{Etc::getpwnam(Etc::getlogin).gecos} <#{Etc::getlogin}@#{Socket::gethostname}>"
87
- end
88
- packager
89
- end
90
-
91
- TEMPLATE =
92
- %q{# Generated from <%= File::basename(format.gem_path) %> by gem2rpm -*- rpm-spec -*-
93
- %define ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
94
- %define gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
95
- %define gemname <%= spec.name %>
96
- %define geminstdir %{gemdir}/gems/%{gemname}-%{version}
97
-
98
- Summary: <%= spec.summary.gsub(/\.$/, "") %>
99
- Name: rubygem-%{gemname}
100
- Version: <%= spec.version %>
101
- Release: 1%{?dist}
102
- Group: Development/Languages
103
- License: GPLv2+ or Ruby
104
- URL: <%= spec.homepage %>
105
- Source0: <%= download_path %>%{gemname}-%{version}.gem
106
- BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
107
- Requires: rubygems
108
- <% for d in spec.dependencies %>
109
- <% for req in d.version_requirements.to_rpm %>
110
- Requires: rubygem(<%= d.name %>) <%= req %>
111
- <% end %>
112
- <% end %>
113
- BuildRequires: rubygems
114
- <% if spec.extensions.empty? %>
115
- BuildArch: noarch
116
- <% end %>
117
- Provides: rubygem(%{gemname}) = %{version}
118
-
119
- %description
120
- <%= spec.description.to_s.chomp.word_wrap(78) + "\n" %>
121
-
122
- <% if nongem %>
123
- %package -n ruby-%{gemname}
124
- Summary: <%= spec.summary.gsub(/\.$/, "") %>
125
- Group: Development/Languages
126
- Requires: rubygem(%{gemname}) = %{version}
127
- <% spec.files.select{ |f| spec.require_paths.include?(File::dirname(f)) }.reject { |f| f =~ /\.rb$/ }.collect { |f| File::basename(f) }.each do |p| %>
128
- Provides: ruby(<%= p %>) = %{version}
129
- <% end %>
130
- %description -n ruby-%{gemname}
131
- <%= spec.description.to_s.chomp.word_wrap(78) + "\n" %>
132
- <% end # if nongem %>
133
-
134
- %prep
135
-
136
- %build
137
-
138
- %install
139
- rm -rf %{buildroot}
140
- mkdir -p %{buildroot}%{gemdir}
141
- <% rdoc_opt = spec.has_rdoc ? "--rdoc " : "" %>
142
- gem install --local --install-dir %{buildroot}%{gemdir} \
143
- --force <%= rdoc_opt %>%{SOURCE0}
144
- <% unless spec.executables.empty? %>
145
- mkdir -p %{buildroot}/%{_bindir}
146
- mv %{buildroot}%{gemdir}/bin/* %{buildroot}/%{_bindir}
147
- rmdir %{buildroot}%{gemdir}/bin
148
- find %{buildroot}%{geminstdir}/bin -type f | xargs chmod a+x
149
- <% end %>
150
- <% if nongem %>
151
- mkdir -p %{buildroot}%{ruby_sitelib}
152
- <% spec.files.select{ |f| spec.require_paths.include?(File::dirname(f)) }.each do |p| %>
153
- ln -s %{gemdir}/gems/%{gemname}-%{version}/<%= p %> %{buildroot}%{ruby_sitelib}
154
- <% end %>
155
- <% end # if nongem %>
156
-
157
- %clean
158
- rm -rf %{buildroot}
159
-
160
- %files
161
- %defattr(-, root, root, -)
162
- <% for f in spec.executables %>
163
- %{_bindir}/<%= f %>
164
- <% end %>
165
- %{gemdir}/gems/%{gemname}-%{version}/
166
- <% if spec.has_rdoc %>
167
- %doc %{gemdir}/doc/%{gemname}-%{version}
168
- <% end %>
169
- <% for f in spec.extra_rdoc_files %>
170
- %doc %{geminstdir}/<%= f %>
171
- <% end %>
172
- %{gemdir}/cache/%{gemname}-%{version}.gem
173
- %{gemdir}/specifications/%{gemname}-%{version}.gemspec
174
-
175
- <% if nongem %>
176
- %files -n ruby-%{gemname}
177
- %defattr(-, root, root, -)
178
- %{ruby_sitelib}/*
179
- <% end # if nongem %>
180
-
181
- %changelog
182
- * <%= Time.now.strftime("%a %b %d %Y") %> <%= packager %> - <%= spec.version %>-1
183
- - Initial package
184
- }
185
- end
186
-
187
- # Local Variables:
188
- # ruby-indent-level: 2
189
- # End:
@@ -1,87 +0,0 @@
1
- # Copyright (C) 2010 Red Hat, Inc.
2
- # Written by Mohammed Morsi <mmorsi@redhat.com>
3
- #
4
- # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; version 2 of the License.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License
14
- # along with this program; if not, write to the Free Software
15
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16
- # MA 02110-1301, USA. A copy of the GNU General Public License is
17
- # also available at http://www.gnu.org/copyleft/gpl.html.
18
-
19
- require 'uri'
20
- require 'net/http'
21
- #require 'net/https'
22
- require 'json'
23
-
24
- # Adapts the gem(cutter) api to polisher
25
- # http://gemcutter.org/pages/api_docs
26
- class GemApiAdapter
27
- # retrieve gem information
28
- def self.gem_info(args = {})
29
- api_uri = args[:api_uri]
30
- gem_name = args[:gem_name]
31
- logger = args[:logger]
32
-
33
- get_path = "/api/v1/gems/#{gem_name}.json"
34
-
35
- logger.info ">> getting gem #{gem_name} info from #{api_uri}#{get_path}" unless logger.nil?
36
- http = Net::HTTP.new(URI.parse(api_uri).host, 80)
37
- res = http.get(get_path)
38
- logger.info ">> received #{res.body}"
39
- JSON.parse(res.body)
40
- end
41
-
42
- # use api endpoint/credentials to add subscription for specified gem / url
43
- def self.subscribe(args = {})
44
- api_uri = args[:api_uri]
45
- api_key = args[:api_key]
46
- gem_name = args[:gem_name]
47
- callback_url = args[:callback_url]
48
- logger = args[:logger]
49
-
50
- subscribe_path = '/api/v1/web_hooks'
51
-
52
- http = Net::HTTP.new(URI.parse(api_uri).host, 80)
53
- data = "gem_name=#{gem_name}&url=#{callback_url}"
54
- headers = { 'Authorization' => api_key }
55
- logger.info ">> sending http request to #{URI.parse(api_uri).host}#{subscribe_path}; data:#{data}; headers:#{headers}"
56
- res = http.post(subscribe_path, data, headers)
57
- # FIXME handle res = #<Net::HTTPNotFound:0x7f1df8319e40> This gem could not be found
58
- logger.info ">> http response received #{res} #{res.body}"
59
- end
60
-
61
- # retrieve gem and save to file
62
- def self.get_gem(args = {})
63
- uri = args[:uri]
64
- gemfile = args[:file]
65
- logger = args[:logger]
66
-
67
- # handle redirects
68
- found = false
69
- until found # FIXME should impose a max tries
70
- gem_uri = URI.parse(uri)
71
- http = Net::HTTP.new(gem_uri.host, 80)
72
- res = http.get(gem_uri.path)
73
- if res.code == "200"
74
- File.open(gemfile, "wb") { |f| f.write res.body }
75
- found = true
76
- else
77
- uri = res.header['location']
78
- end
79
- end
80
- end
81
-
82
- # helper, convert gem uri to source uri
83
- def self.gem_to_source_uri(gem_uri)
84
- uri = URI.parse(gem_uri)
85
- return uri.scheme + "://" + uri.host
86
- end
87
- end
data/lib/rpm_adapter.rb DELETED
@@ -1,39 +0,0 @@
1
- # Copyright (C) 2010 Red Hat, Inc.
2
- # Written by Mohammed Morsi <mmorsi@redhat.com>
3
- #
4
- # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; version 2 of the License.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License
14
- # along with this program; if not, write to the Free Software
15
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16
- # MA 02110-1301, USA. A copy of the GNU General Public License is
17
- # also available at http://www.gnu.org/copyleft/gpl.html.
18
-
19
- # use gem2rpm to create rpm from gem
20
- require 'gem2rpm'
21
-
22
- # Adapts rpm subsystem to polisher
23
- class RpmAdapter
24
- # build rpm from specified args
25
- def self.build(args = {})
26
- gem = args[:gem]
27
- logger = args[:logger]
28
- outfile = "../tmp/rpms/#{gem.name}-#{gem.version}.spec." + Time.now.strftime("%y%m%d%H%M%S")
29
- outfh = File.open(outfile, "wb")
30
-
31
- # get gem / write to file
32
- gemfile = "../tmp/gems/#{gem.name}-#{gem.version}.gem"
33
- logger.info ">> retreive gem from #{gem.uri} and writing to #{Dir.pwd}/#{gemfile}"
34
- GemApiAdapter.get_gem :uri => gem.uri, :file => gemfile, :logger => logger
35
-
36
- logger.info ">> generating rpm spec #{outfile} from gemfile #{gemfile}" unless logger.nil?
37
- Gem2Rpm::convert gemfile, Gem2Rpm::TEMPLATE, outfh
38
- end
39
- end
data/public/404.html DELETED
@@ -1,30 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
-
6
- <head>
7
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
- <title>The page you were looking for doesn't exist (404)</title>
9
- <style type="text/css">
10
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
- div.dialog {
12
- width: 25em;
13
- padding: 0 4em;
14
- margin: 4em auto 0 auto;
15
- border: 1px solid #ccc;
16
- border-right-color: #999;
17
- border-bottom-color: #999;
18
- }
19
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
- </style>
21
- </head>
22
-
23
- <body>
24
- <!-- This file lives in public/404.html -->
25
- <div class="dialog">
26
- <h1>The page you were looking for doesn't exist.</h1>
27
- <p>You may have mistyped the address or the page may have moved.</p>
28
- </div>
29
- </body>
30
- </html>
data/public/422.html DELETED
@@ -1,30 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
-
6
- <head>
7
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
- <title>The change you wanted was rejected (422)</title>
9
- <style type="text/css">
10
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
- div.dialog {
12
- width: 25em;
13
- padding: 0 4em;
14
- margin: 4em auto 0 auto;
15
- border: 1px solid #ccc;
16
- border-right-color: #999;
17
- border-bottom-color: #999;
18
- }
19
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
- </style>
21
- </head>
22
-
23
- <body>
24
- <!-- This file lives in public/422.html -->
25
- <div class="dialog">
26
- <h1>The change you wanted was rejected.</h1>
27
- <p>Maybe you tried to change something you didn't have access to.</p>
28
- </div>
29
- </body>
30
- </html>
data/public/500.html DELETED
@@ -1,30 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
-
6
- <head>
7
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
- <title>We're sorry, but something went wrong (500)</title>
9
- <style type="text/css">
10
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
- div.dialog {
12
- width: 25em;
13
- padding: 0 4em;
14
- margin: 4em auto 0 auto;
15
- border: 1px solid #ccc;
16
- border-right-color: #999;
17
- border-bottom-color: #999;
18
- }
19
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
- </style>
21
- </head>
22
-
23
- <body>
24
- <!-- This file lives in public/500.html -->
25
- <div class="dialog">
26
- <h1>We're sorry, but something went wrong.</h1>
27
- <p>We've been notified about this issue and we'll take a look at it shortly.</p>
28
- </div>
29
- </body>
30
- </html>
data/public/dispatch.cgi DELETED
@@ -1,10 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
4
-
5
- # If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
6
- # "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
7
- require "dispatcher"
8
-
9
- ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
10
- Dispatcher.dispatch
data/public/dispatch.fcgi DELETED
@@ -1,24 +0,0 @@
1
- #!/usr/bin/ruby
2
- #
3
- # You may specify the path to the FastCGI crash log (a log of unhandled
4
- # exceptions which forced the FastCGI instance to exit, great for debugging)
5
- # and the number of requests to process before running garbage collection.
6
- #
7
- # By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log
8
- # and the GC period is nil (turned off). A reasonable number of requests
9
- # could range from 10-100 depending on the memory footprint of your app.
10
- #
11
- # Example:
12
- # # Default log path, normal GC behavior.
13
- # RailsFCGIHandler.process!
14
- #
15
- # # Default log path, 50 requests between GC.
16
- # RailsFCGIHandler.process! nil, 50
17
- #
18
- # # Custom log path, normal GC behavior.
19
- # RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'
20
- #
21
- require File.dirname(__FILE__) + "/../config/environment"
22
- require 'fcgi_handler'
23
-
24
- RailsFCGIHandler.process!
data/public/dispatch.rb DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/ruby
2
- #
3
- # Copyright (C) 2008 Red Hat, Inc.
4
- # Written by Scott Seago <sseago@redhat.com>
5
- #
6
- # This program is free software; you can redistribute it and/or modify
7
- # it under the terms of the GNU General Public License as published by
8
- # the Free Software Foundation; version 2 of the License.
9
- #
10
- # This program is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- # GNU General Public License for more details.
14
- #
15
- # You should have received a copy of the GNU General Public License
16
- # along with this program; if not, write to the Free Software
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
- # MA 02110-1301, USA. A copy of the GNU General Public License is
19
- # also available at http://www.gnu.org/copyleft/gpl.html.
20
-
21
-
22
- require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
23
-
24
- # If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
25
- # "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
26
- require "dispatcher"
27
-
28
- ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
29
- Dispatcher.dispatch
data/public/favicon.ico DELETED
File without changes
Binary file