From 7f9adf31b8143cc3b4157ddfc570deea3f75dead Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 3 Sep 2011 00:16:00 +0530 Subject: [PATCH] Add start-year for compliance in ProjectInfo --- ivy/IvyInterface.scala | 2 +- ivy/MakePom.scala | 3 +++ main/Defaults.scala | 3 ++- main/Keys.scala | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ivy/IvyInterface.scala b/ivy/IvyInterface.scala index d8c5c0ac6..918023f38 100644 --- a/ivy/IvyInterface.scala +++ b/ivy/IvyInterface.scala @@ -39,7 +39,7 @@ object ModuleID if(key.startsWith("e:")) (key, value) else ("e:" + key, value) } /** Additional information about a project module */ -case class ModuleInfo(nameFormal: String, description: String = "", homepage: Option[URL] = None, licenses: Seq[(String, URL)] = Nil, organizationName: String = "", organizationHomepage: Option[URL] = None) +case class ModuleInfo(nameFormal: String, description: String = "", homepage: Option[URL] = None, startYear: Option[Int] = None, licenses: Seq[(String, URL)] = Nil, organizationName: String = "", organizationHomepage: Option[URL] = None) { def formally(name: String) = copy(nameFormal = name) def describing(desc: String, home: Option[URL]) = copy(description = desc, homepage = home) diff --git a/ivy/MakePom.scala b/ivy/MakePom.scala index 76d891330..dc31760b1 100644 --- a/ivy/MakePom.scala +++ b/ivy/MakePom.scala @@ -43,6 +43,7 @@ class MakePom 4.0.0 { makeModuleID(module) } {moduleInfo.nameFormal} + { makeStartYear(moduleInfo) } { makeOrganization(moduleInfo) } { extra } { makeProperties(module) } @@ -64,6 +65,8 @@ class MakePom licenses(module.getLicenses)) : NodeSeq ) a ++ b } + + def makeStartYear(moduleInfo: ModuleInfo): NodeSeq = moduleInfo.startYear map { y => {y} } getOrElse NodeSeq.Empty def makeOrganization(moduleInfo: ModuleInfo): NodeSeq = { diff --git a/main/Defaults.scala b/main/Defaults.scala index 81da13b60..62fef9ea8 100644 --- a/main/Defaults.scala +++ b/main/Defaults.scala @@ -624,11 +624,12 @@ object Classpaths normalizedName <<= name(StringUtilities.normalize), description <<= description or name.identity, homepage in GlobalScope :== None, + startYear in GlobalScope :== None, licenses in GlobalScope :== Nil, organization <<= organization or normalizedName.identity, organizationName <<= organizationName or organization.identity, organizationHomepage <<= organizationHomepage or homepage.identity, - projectInfo <<= (name, description, homepage, licenses, organizationName, organizationHomepage) apply ModuleInfo, + projectInfo <<= (name, description, homepage, startYear, licenses, organizationName, organizationHomepage) apply ModuleInfo, classpathFilter in GlobalScope :== "*.jar" | "*.so" | "*.dll", externalResolvers <<= (externalResolvers.task.?, resolvers) { case (Some(delegated), Seq()) => delegated diff --git a/main/Keys.scala b/main/Keys.scala index e486d2e49..688f2f0fe 100644 --- a/main/Keys.scala +++ b/main/Keys.scala @@ -184,6 +184,7 @@ object Keys val normalizedName = SettingKey[String]("normalized-name", "Project name transformed from mixed case and spaces to lowercase and dash-separated.") val description = SettingKey[String]("description", "Project description.") val homepage = SettingKey[Option[URL]]("homepage", "Project homepage.") + val startYear = SettingKey[Option[Int]]("start-year", "Year in which the project started.") val licenses = SettingKey[Seq[(String, URL)]]("licenses", "Project licenses as (name, url) pairs.") val organization = SettingKey[String]("organization", "Organization/group ID.") val organizationName = SettingKey[String]("organization-name", "Organization full/formal name.")