# $Id$ # utilities for development of MacPorts portfiles # require 'fileutils' MACPORTS_SVN_URI = 'https://svn.macosforge.org/repository/macports/trunk/dports' # Rake tasks task :default => ["port:portindex"] desc %Q!"svn update" at top of port-tree! task :update do sh 'svn update' end namespace "port" do desc %Q!"portindex" at top of port-tree! task :portindex do sh 'portindex' end # desc %Q!usage: rake port:import dir=ruby/rb-rake\n! + # %Q! rake port:import dir=ruby/rb-rake,devel/subversion\n! + # %Q!import portfile from macports' repository. ! # task :import do |t| # unless dirs = ENV['dir'] # raise "Error: argument \`dir\' is required.\n" + t.full_comment # end # dirs.split(',').each do |port_path| # puts "importing \"#{port_path}\"..." # add_svn_external(port_path) # end # puts '' # puts "import completed. please \`svn ci && svn up\'." # end # # def add_svn_external(port_path) # unless system "port info #{port_path} > /dev/null 2>&1" # raise "Error: port \"#{port_path}\" not found." # end # dir, portname = port_path.split('/') # unless FileTest.directory?(dir) # Dir.mkdir dir # `svn add "#{dir}"` # end # if FileTest.exists?(port_path) # raise "Error: directory \"#{port_path}\" already exists." # end # uri = MACPORTS_SVN_URI + "/#{dir}/#{portname}" # curr_ext = `svn propget svn:externals #{dir}`.chomp('') # system %Q!svn propset svn:externals "#{curr_ext}\n#{portname} #{uri}" #{dir}! # end end