Revision: 70311 http://trac.macports.org/changeset/70311 Author: jrozner@macports.org Date: 2010-08-05 15:57:41 -0700 (Thu, 05 Aug 2010) Log Message: ----------- Updated syncing script to properly sync and remove the need for category seed data. Also added messages when no categories or ports are in the db Modified Paths: -------------- branches/gsoc10-mpwa/bin/add_ports branches/gsoc10-mpwa/mpwa/app/controllers/application_controller.rb branches/gsoc10-mpwa/mpwa/app/controllers/categories_controller.rb branches/gsoc10-mpwa/mpwa/app/controllers/ports_controller.rb branches/gsoc10-mpwa/mpwa/app/views/categories/index.html.erb branches/gsoc10-mpwa/mpwa/app/views/partials/_port_search.html.erb branches/gsoc10-mpwa/mpwa/app/views/ports/index.html.erb branches/gsoc10-mpwa/mpwa/db/seeds.rb branches/gsoc10-mpwa/mpwa/test/fixtures/categories.yml branches/gsoc10-mpwa/mpwa/test/fixtures/comments.yml branches/gsoc10-mpwa/mpwa/test/fixtures/port_dependencies.yml branches/gsoc10-mpwa/mpwa/test/fixtures/ports.yml branches/gsoc10-mpwa/mpwa/test/fixtures/tickets.yml Modified: branches/gsoc10-mpwa/bin/add_ports =================================================================== --- branches/gsoc10-mpwa/bin/add_ports 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/bin/add_ports 2010-08-05 22:57:41 UTC (rev 70311) @@ -3,9 +3,10 @@ require 'trac4r' TIME_FILE = "/var/tmp/mpwa-sync" -NEW_PORTS = "/Users/joe/Dev/gsoc10-mpwa/bin/new-ports" +ROOT = File.expand_path(File.dirname(__FILE__) + "/../") +NEW_PORTS = "#{ROOT}/bin/new_ports" PORT_INDEX = "/opt/local/var/macports/sources/rsync.macports.org/release/ports" -RAILS_ROOT = "/Users/joe/Dev/gsoc10-mpwa/mpwa" +RAILS_ROOT = "#{ROOT}/mpwa" OPEN_STATUSES = ['new', 'reopened', 'assigned'] TRAC_URL = "http://192.168.1.135/svn-helloworld/xmlrpc" TRAC_USER = "admin" @@ -22,6 +23,8 @@ $mtime = 0 end +FileUtils.touch(TIME_FILE) + $ports = Array.new $hashed_data = Hash.new @@ -31,8 +34,11 @@ fp = IO.popen("#{NEW_PORTS} -m #{$mtime} #{PORT_INDEX}") new_ports = fp.read.split("\n") -new_ports << "" +if new_ports.count > 0 + new_ports << "" #add last blank line +end + new_ports.each do |line| unless (line == "") data = line.match(/(\S+):\s+\{?(.+)\}?$/) @@ -40,18 +46,29 @@ $hashed_data[data[1].to_sym] = data[2] end else - port = Port.new({ - :name => $hashed_data[:name], - :path => $hashed_data[:portdir], - :version => $hashed_data[:version], - :description => $hashed_data[:description], - :licenses => $hashed_data[:license], - :category_id => Category.find_by_name($hashed_data[:categories].split(" ")[0]).id, - :variants => $hashed_data[:variants], - :maintainers => $hashed_data[:maintainers], - :platforms => $hashed_data[:platforms], - :categories => $hashed_data[:categories] - }) + category_name = $hashed_data[:categories].try(:split, " ").try(:[], 0) + $category = Category.find_by_name(category_name) + if $category.nil? + $category = Category.new({:name => category_name}) + $category.save + end + + port = Port.find_by_name($hashed_data[:name]) + if port.nil? + port = Port.new + end + + port[:name] = $hashed_data[:name] + port[:path] = $hashed_data[:portdir] + port[:version] = $hashed_data[:version] + port[:description] = $hashed_data[:description] + port[:licenses] = $hashed_data[:license] + port[:category_id] = $category.id + port[:variants] = $hashed_data[:variants] + port[:maintainers] = $hashed_data[:maintainers] + port[:platforms] = $hashed_data[:platforms] + port[:categories] = $hashed_data[:categories] + $ports << [$hashed_data, port] port.save $hashed_data = {} Modified: branches/gsoc10-mpwa/mpwa/app/controllers/application_controller.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/controllers/application_controller.rb 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/app/controllers/application_controller.rb 2010-08-05 22:57:41 UTC (rev 70311) @@ -20,4 +20,6 @@ $bz2_tarball = "#{$downloads_url}MacPorts-#{$latest_version}.tar.bz2" $gz_tarball = "#{$downloads_url}MacPorts-#{$latest_version}.tar.gz" $checksums = "#{$downloads_url}MacPorts-#{$latest_version}.chk.txt" + + $updated = Port.all(:order => 'updated_at DESC', :limit => 1).try(:first).try(:updated_at) || Time.at(0) end Modified: branches/gsoc10-mpwa/mpwa/app/controllers/categories_controller.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/controllers/categories_controller.rb 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/app/controllers/categories_controller.rb 2010-08-05 22:57:41 UTC (rev 70311) @@ -1,6 +1,5 @@ class CategoriesController < ApplicationController def index @categories = Category.all(:order => 'name ASC') - @updated = Port.all(:order => 'updated_at DESC', :limit => 1).first.updated_at end end Modified: branches/gsoc10-mpwa/mpwa/app/controllers/ports_controller.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/controllers/ports_controller.rb 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/app/controllers/ports_controller.rb 2010-08-05 22:57:41 UTC (rev 70311) @@ -5,7 +5,6 @@ else @ports = Port.paginate :page => params[:page], :order => 'name ASC', :per_page => 50 end - @updated = Port.all(:order => 'updated_at DESC', :limit => 1).first.updated_at @page = params[:page] || 1 respond_to do |format| @@ -24,7 +23,6 @@ def search @ports = Port.search(params[:criteria], params[:val], params[:page]) - @updated = Port.all(:order => 'updated_at DESC', :limit => 1).first.updated_at @page = params[:page] || 1 respond_to do |format| Modified: branches/gsoc10-mpwa/mpwa/app/views/categories/index.html.erb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/views/categories/index.html.erb 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/app/views/categories/index.html.erb 2010-08-05 22:57:41 UTC (rev 70311) @@ -3,11 +3,17 @@ <%= render :partial => '/partials/port_search' %> <h3>Port Categories</h3> + <div id="categories"> + + <% unless @categories.empty? %> <ul> <% @categories.each do |category| %> <li><%= link_to category.name, category_ports_path(category.id) %></li> <% end %> </ul> + <% else %> + <p>No Categories found.</p> + <% end %> </div> </div> \ No newline at end of file Modified: branches/gsoc10-mpwa/mpwa/app/views/partials/_port_search.html.erb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/views/partials/_port_search.html.erb 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/app/views/partials/_port_search.html.erb 2010-08-05 22:57:41 UTC (rev 70311) @@ -1,6 +1,6 @@ <h2 class="hdr">MacPorts Portfiles</h2> -<p>The MacPorts Project currently distributes <b><%= Port.count %></b> ports, organized across 92 different categories and available below for viewing. This form allows you to search the MacPorts software index, last updated on <b><%= @updated.strftime("%Y-%m-%d") %></b> at <b><%= @updated.strftime("%H:%M:%S %Z") %></b>.</p> +<p>The MacPorts Project currently distributes <b><%= Port.count %></b> ports, organized across 92 different categories and available below for viewing. This form allows you to search the MacPorts software index, last updated on <b><%= $updated.strftime("%Y-%m-%d") %></b> at <b><%= $updated.strftime("%H:%M:%S %Z") %></b>.</p> <br /> Modified: branches/gsoc10-mpwa/mpwa/app/views/ports/index.html.erb =================================================================== --- branches/gsoc10-mpwa/mpwa/app/views/ports/index.html.erb 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/app/views/ports/index.html.erb 2010-08-05 22:57:41 UTC (rev 70311) @@ -3,6 +3,7 @@ <h3>Query Results</h3> +<% unless @ports.empty? %> <p> <%= ((@page.to_i - 1) * 50) + 1 %> - <%= @page.to_i * 50 %> of <%= Port.count %> Portfiles Selected </p> @@ -44,6 +45,9 @@ </dd> </dl> <% end %> +<% else %> + <p>No ports found.</p> +<% end %> <p> <%= will_paginate @ports %> Modified: branches/gsoc10-mpwa/mpwa/db/seeds.rb =================================================================== --- branches/gsoc10-mpwa/mpwa/db/seeds.rb 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/db/seeds.rb 2010-08-05 22:57:41 UTC (rev 70311) @@ -5,6 +5,3 @@ # # cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }]) # Major.create(:name => 'Daley', :city => cities.first) -require 'active_record/fixtures' - -Fixtures.create_fixtures("#{Rails.root}/test/fixtures", "categories") \ No newline at end of file Modified: branches/gsoc10-mpwa/mpwa/test/fixtures/categories.yml =================================================================== --- branches/gsoc10-mpwa/mpwa/test/fixtures/categories.yml 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/test/fixtures/categories.yml 2010-08-05 22:57:41 UTC (rev 70311) @@ -1,184 +0,0 @@ -0: - id: 0 - name: aqua - -1: - id: 1 - name: archivers - -2: - id: 2 - name: audio - -3: - id: 3 - name: benchmarks - -4: - id: 4 - name: cad - -5: - id: 5 - name: comms - -6: - id: 6 - name: cross - -7: - id: 7 - name: databases - -8: - id: 8 - name: devel - -9: - id: 9 - name: editors - -10: - id: 10 - name: emulators - -11: - id: 11 - name: erlang - -12: - id: 12 - name: finance - -13: - id: 13 - name: fuse - -14: - id: 14 - name: games - -15: - id: 15 - name: genealogy - -16: - id: 16 - name: gis - -17: - id: 17 - name: gnome - -18: - id: 18 - name: gnustep - -19: - id: 19 - name: graphics - -20: - id: 20 - name: irc - -21: - id: 21 - name: java - -22: - id: 22 - name: kde - -23: - id: 23 - name: lang - -24: - id: 24 - name: mail - -25: - id: 25 - name: math - -26: - id: 26 - name: multimedia - -27: - id: 27 - name: net - -28: - id: 28 - name: news - -29: - id: 29 - name: office - -30: - id: 30 - name: palm - -31: - id: 31 - name: perl - -32: - id: 32 - name: php - -33: - id: 33 - name: print - -34: - id: 34 - name: python - -35: - id: 35 - name: ruby - -36: - id: 36 - name: science - -37: - id: 37 - name: security - -38: - id: 38 - name: shells - -39: - id: 39 - name: sysutils - -40: - id: 40 - name: tex - -41: - id: 41 - name: textproc - -42: - id: 42 - name: www - -43: - id: 43 - name: x11 - -44: - id: 44 - name: xfce - -45: - id: 45 - name: zope - Modified: branches/gsoc10-mpwa/mpwa/test/fixtures/comments.yml =================================================================== --- branches/gsoc10-mpwa/mpwa/test/fixtures/comments.yml 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/test/fixtures/comments.yml 2010-08-05 22:57:41 UTC (rev 70311) @@ -1,9 +0,0 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html - -one: - port_id: 1 - body: MyText - -two: - port_id: 1 - body: MyText Modified: branches/gsoc10-mpwa/mpwa/test/fixtures/port_dependencies.yml =================================================================== --- branches/gsoc10-mpwa/mpwa/test/fixtures/port_dependencies.yml 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/test/fixtures/port_dependencies.yml 2010-08-05 22:57:41 UTC (rev 70311) @@ -1,9 +0,0 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html - -one: - port_id: 1 - dependency_id: 1 - -two: - port_id: 1 - dependency_id: 1 Modified: branches/gsoc10-mpwa/mpwa/test/fixtures/ports.yml =================================================================== --- branches/gsoc10-mpwa/mpwa/test/fixtures/ports.yml 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/test/fixtures/ports.yml 2010-08-05 22:57:41 UTC (rev 70311) @@ -1,19 +0,0 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html - -one: - name: MyString - path: MyString - version: MyString - description: MyText - licenses: MyString - categories: MyString - variants: MyString - -two: - name: MyString - path: MyString - version: MyString - description: MyText - licenses: MyString - categories: MyString - variants: MyString Modified: branches/gsoc10-mpwa/mpwa/test/fixtures/tickets.yml =================================================================== --- branches/gsoc10-mpwa/mpwa/test/fixtures/tickets.yml 2010-08-05 22:47:40 UTC (rev 70310) +++ branches/gsoc10-mpwa/mpwa/test/fixtures/tickets.yml 2010-08-05 22:57:41 UTC (rev 70311) @@ -1,9 +0,0 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html - -one: - port_id: 1 - ticket: 1 - -two: - port_id: 1 - ticket: 1
participants (1)
-
jrozner@macports.org