You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by as...@apache.org on 2008/04/08 08:59:44 UTC
svn commit: r645778 - in /incubator/buildr/trunk: addon/buildr/ lib/buildr/
lib/buildr/core/ lib/buildr/ide/ lib/buildr/java/ lib/buildr/packaging/
lib/buildr/tasks/
Author: assaf
Date: Mon Apr 7 23:59:39 2008
New Revision: 645778
URL: http://svn.apache.org/viewvc?rev=645778&view=rev
Log:
A bit more organization: consolidated generic packaging stuff in buildr/packaging, left only Java-specific packaging in buildr/java.
Added:
incubator/buildr/trunk/lib/buildr/packaging/
incubator/buildr/trunk/lib/buildr/packaging.rb
incubator/buildr/trunk/lib/buildr/packaging/artifact.rb
- copied, changed from r645772, incubator/buildr/trunk/lib/buildr/java/artifact.rb
incubator/buildr/trunk/lib/buildr/packaging/artifact_namespace.rb
- copied unchanged from r645772, incubator/buildr/trunk/lib/buildr/java/artifact_namespace.rb
incubator/buildr/trunk/lib/buildr/packaging/artifact_search.rb
- copied unchanged from r645772, incubator/buildr/trunk/lib/buildr/java/artifact_search.rb
incubator/buildr/trunk/lib/buildr/packaging/gems.rb
incubator/buildr/trunk/lib/buildr/packaging/package.rb
- copied, changed from r645772, incubator/buildr/trunk/lib/buildr/core/package.rb
incubator/buildr/trunk/lib/buildr/packaging/tar.rb
- copied, changed from r645772, incubator/buildr/trunk/lib/buildr/tasks/tar.rb
incubator/buildr/trunk/lib/buildr/packaging/zip.rb
- copied unchanged from r645772, incubator/buildr/trunk/lib/buildr/tasks/zip.rb
Removed:
incubator/buildr/trunk/lib/buildr/core/addon.rb
incubator/buildr/trunk/lib/buildr/core/package.rb
incubator/buildr/trunk/lib/buildr/java/artifact.rb
incubator/buildr/trunk/lib/buildr/java/artifact_namespace.rb
incubator/buildr/trunk/lib/buildr/java/artifact_search.rb
incubator/buildr/trunk/lib/buildr/tasks.rb
incubator/buildr/trunk/lib/buildr/tasks/concat.rb
incubator/buildr/trunk/lib/buildr/tasks/tar.rb
incubator/buildr/trunk/lib/buildr/tasks/zip.rb
Modified:
incubator/buildr/trunk/addon/buildr/jetty.rb
incubator/buildr/trunk/lib/buildr/core.rb
incubator/buildr/trunk/lib/buildr/core/common.rb
incubator/buildr/trunk/lib/buildr/ide/eclipse.rb
incubator/buildr/trunk/lib/buildr/ide/idea.rb
incubator/buildr/trunk/lib/buildr/ide/idea7x.rb
incubator/buildr/trunk/lib/buildr/java/compilers.rb
incubator/buildr/trunk/lib/buildr/java/packaging.rb
incubator/buildr/trunk/lib/buildr/java/pom.rb
Modified: incubator/buildr/trunk/addon/buildr/jetty.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/addon/buildr/jetty.rb?rev=645778&r1=645777&r2=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/addon/buildr/jetty.rb (original)
+++ incubator/buildr/trunk/addon/buildr/jetty.rb Mon Apr 7 23:59:39 2008
@@ -18,7 +18,7 @@
require 'net/http'
require 'buildr/core/project'
require 'buildr/java'
-require 'buildr/java/artifact'
+require 'buildr/packaging'
require 'thread'
Modified: incubator/buildr/trunk/lib/buildr/core.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/core.rb?rev=645778&r1=645777&r2=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/core.rb (original)
+++ incubator/buildr/trunk/lib/buildr/core.rb Mon Apr 7 23:59:39 2008
@@ -20,10 +20,8 @@
require 'buildr/core/environment'
require 'buildr/core/help'
require 'buildr/core/build'
-require 'buildr/core/package'
require 'buildr/core/filter'
require 'buildr/core/compile'
require 'buildr/core/test'
require 'buildr/core/checks'
require 'buildr/core/generate'
-require 'buildr/core/addon'
Modified: incubator/buildr/trunk/lib/buildr/core/common.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/core/common.rb?rev=645778&r1=645777&r2=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/core/common.rb (original)
+++ incubator/buildr/trunk/lib/buildr/core/common.rb Mon Apr 7 23:59:39 2008
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations under
# the License.
+
+require 'rake'
require 'tempfile'
require 'open-uri'
$LOADED_FEATURES << 'rubygems/open-uri.rb' # avoid loading rubygems' open-uri
@@ -118,6 +120,36 @@
end
-end
+ # A file task that concatenates all its prerequisites to create a new file.
+ #
+ # For example:
+ # concat("master.sql"=>["users.sql", "orders.sql", reports.sql"]
+ #
+ # See also Buildr#concat.
+ class ConcatTask < Rake::FileTask
+ def initialize(*args) #:nodoc:
+ super
+ enhance do |task|
+ content = prerequisites.inject("") do |content, prereq|
+ content << File.read(prereq.to_s) if File.exists?(prereq) && !File.directory?(prereq)
+ content
+ end
+ File.open(task.name, "wb") { |file| file.write content }
+ end
+ end
+ end
+ # :call-seq:
+ # concat(target=>files) => task
+ #
+ # Creates and returns a file task that concatenates all its prerequisites to create
+ # a new file. See #ConcatTask.
+ #
+ # For example:
+ # concat("master.sql"=>["users.sql", "orders.sql", reports.sql"]
+ def concat(args)
+ file, arg_names, deps = Buildr.application.resolve_args([args])
+ ConcatTask.define_task(File.expand_path(file)=>deps)
+ end
+end
Modified: incubator/buildr/trunk/lib/buildr/ide/eclipse.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/ide/eclipse.rb?rev=645778&r1=645777&r2=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/ide/eclipse.rb (original)
+++ incubator/buildr/trunk/lib/buildr/ide/eclipse.rb Mon Apr 7 23:59:39 2008
@@ -15,7 +15,7 @@
require 'buildr/core/project'
-require 'buildr/java/artifact'
+require 'buildr/packaging'
module Buildr
Modified: incubator/buildr/trunk/lib/buildr/ide/idea.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/ide/idea.rb?rev=645778&r1=645777&r2=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/ide/idea.rb (original)
+++ incubator/buildr/trunk/lib/buildr/ide/idea.rb Mon Apr 7 23:59:39 2008
@@ -15,7 +15,7 @@
require 'buildr/core/project'
-require 'buildr/java/artifact'
+require 'buildr/packaging'
require 'stringio'
require 'rexml/document'
Modified: incubator/buildr/trunk/lib/buildr/ide/idea7x.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/ide/idea7x.rb?rev=645778&r1=645777&r2=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/ide/idea7x.rb (original)
+++ incubator/buildr/trunk/lib/buildr/ide/idea7x.rb Mon Apr 7 23:59:39 2008
@@ -15,7 +15,7 @@
require 'buildr/core/project'
-require 'buildr/java/artifact'
+require 'buildr/packaging'
require 'stringio'
require 'rexml/document'
Modified: incubator/buildr/trunk/lib/buildr/java/compilers.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/java/compilers.rb?rev=645778&r1=645777&r2=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/java/compilers.rb (original)
+++ incubator/buildr/trunk/lib/buildr/java/compilers.rb Mon Apr 7 23:59:39 2008
@@ -17,7 +17,7 @@
require 'buildr/core/project'
require 'buildr/core/common'
require 'buildr/core/compile'
-require 'buildr/java/artifact'
+require 'buildr/packaging'
module Buildr
Modified: incubator/buildr/trunk/lib/buildr/java/packaging.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/java/packaging.rb?rev=645778&r1=645777&r2=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/java/packaging.rb (original)
+++ incubator/buildr/trunk/lib/buildr/java/packaging.rb Mon Apr 7 23:59:39 2008
@@ -14,9 +14,7 @@
# the License.
-require 'buildr/core/package'
-require 'buildr/tasks/zip'
-require 'buildr/tasks/tar'
+require 'buildr/packaging'
module Buildr
Modified: incubator/buildr/trunk/lib/buildr/java/pom.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/java/pom.rb?rev=645778&r1=645777&r2=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/java/pom.rb (original)
+++ incubator/buildr/trunk/lib/buildr/java/pom.rb Mon Apr 7 23:59:39 2008
@@ -15,7 +15,7 @@
require 'xmlsimple'
-require 'buildr/java/artifact'
+require 'buildr/packaging'
module Buildr
Added: incubator/buildr/trunk/lib/buildr/packaging.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/packaging.rb?rev=645778&view=auto
==============================================================================
--- incubator/buildr/trunk/lib/buildr/packaging.rb (added)
+++ incubator/buildr/trunk/lib/buildr/packaging.rb Mon Apr 7 23:59:39 2008
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with this
+# work for additional information regarding copyright ownership. The ASF
+# licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+
+require 'buildr/packaging/zip'
+require 'buildr/packaging/tar'
+require 'buildr/packaging/artifact'
+require 'buildr/packaging/package'
+require 'buildr/packaging/gems'
Copied: incubator/buildr/trunk/lib/buildr/packaging/artifact.rb (from r645772, incubator/buildr/trunk/lib/buildr/java/artifact.rb)
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/packaging/artifact.rb?p2=incubator/buildr/trunk/lib/buildr/packaging/artifact.rb&p1=incubator/buildr/trunk/lib/buildr/java/artifact.rb&r1=645772&r2=645778&rev=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/java/artifact.rb (original)
+++ incubator/buildr/trunk/lib/buildr/packaging/artifact.rb Mon Apr 7 23:59:39 2008
@@ -17,7 +17,7 @@
require 'builder'
require 'buildr/core/project'
require 'buildr/core/transports'
-require 'buildr/java/artifact_namespace'
+require 'buildr/packaging/artifact_namespace'
module Buildr
Added: incubator/buildr/trunk/lib/buildr/packaging/gems.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/packaging/gems.rb?rev=645778&view=auto
==============================================================================
--- incubator/buildr/trunk/lib/buildr/packaging/gems.rb (added)
+++ incubator/buildr/trunk/lib/buildr/packaging/gems.rb Mon Apr 7 23:59:39 2008
@@ -0,0 +1,98 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with this
+# work for additional information regarding copyright ownership. The ASF
+# licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+
+require 'buildr/packaging/package'
+require 'buildr/packaging/zip'
+require 'rubyforge'
+
+
+module Buildr
+
+ class PackageGemTask < ArchiveTask
+
+ def initialize(*args)
+ super
+ @spec = Gem::Specification.new
+ end
+
+ def spec
+ yield @spec if block_given?
+ @spec
+ end
+
+ def install
+ Util.ruby 'install', name, :command => 'gem', :sudo => true
+ end
+
+ def uninstall
+ Util.ruby 'uninstall', spec.name, '-v', spec.version.to_s, :command => 'gem', :sudo => true
+ end
+
+ def upload
+ rubyforge = RubyForge.new
+ rubyforge.login
+ #File.open('.changes', 'w'){|f| f.write(current)}
+ #rubyforge.userconfig.merge!('release_changes' => '.changes', 'preformatted' => true)
+ rubyforge.add_release spec.rubyforge_project.downcase, spec.name.downcase, spec.version, package(:gem).to_s
+ end
+
+ private
+
+ def create_from(file_map)
+ spec.mark_version
+ spec.validate
+ Gem::Package.open(name, 'w', signer) do |pkg|
+ pkg.metadata = spec.to_yaml
+ file_map.each do |path, content|
+ next if content.nil? || File.directory?(content.to_s)
+ pkg.add_file_simple(path, File.stat(name).mode & 0777, File.size(content.to_s)) do |os|
+ os.write File.open(content.to_s, 'rb') { |f| f.read }
+ end
+ end
+ end
+ end
+
+ def signer
+ # TODO: implement.
+ end
+ end
+
+
+ module PackageAsGem
+
+ def package_as_gem(file_name) #:nodoc:
+ PackageGemTask.define_task(file_name).tap do |gem|
+ %{ lib test doc }.each do |dir|
+ gem.include :from=>_(dir), :path=>dir if File.directory?(_(dir))
+ end
+ gem.spec do |spec|
+ spec.name = id
+ spec.version = version
+ spec.summary = full_comment
+ spec.has_rdoc = true
+ spec.rdoc_options << '--title' << comment
+ spec.require_path = 'lib'
+ end
+ end
+ end
+
+ end
+
+ class Project
+ include PackageAsGem
+ end
+
+end
Copied: incubator/buildr/trunk/lib/buildr/packaging/package.rb (from r645772, incubator/buildr/trunk/lib/buildr/core/package.rb)
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/packaging/package.rb?p2=incubator/buildr/trunk/lib/buildr/packaging/package.rb&p1=incubator/buildr/trunk/lib/buildr/core/package.rb&r1=645772&r2=645778&rev=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/core/package.rb (original)
+++ incubator/buildr/trunk/lib/buildr/packaging/package.rb Mon Apr 7 23:59:39 2008
@@ -16,7 +16,7 @@
require 'buildr/core/project'
require 'buildr/core/compile'
-require 'buildr/java/artifact'
+require 'buildr/packaging/artifact'
module Buildr
Copied: incubator/buildr/trunk/lib/buildr/packaging/tar.rb (from r645772, incubator/buildr/trunk/lib/buildr/tasks/tar.rb)
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/packaging/tar.rb?p2=incubator/buildr/trunk/lib/buildr/packaging/tar.rb&p1=incubator/buildr/trunk/lib/buildr/tasks/tar.rb&r1=645772&r2=645778&rev=645778&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/tasks/tar.rb (original)
+++ incubator/buildr/trunk/lib/buildr/packaging/tar.rb Mon Apr 7 23:59:39 2008
@@ -14,7 +14,7 @@
# the License.
-require 'buildr/tasks/zip'
+require 'buildr/packaging/zip'
require 'archive/tar/minitar'