Fixes from mark's suggestions.

* Puppies may rest easy from the removal of Option.get calls.
* better names for config values
* Added a helper method to avoid any possible code duplication, besides repeated def, val, match and for keywords.
  Looking for ways to remove this duplciation ASAP.
* Moved from pattern match to ._1, my most hated member.
This commit is contained in:
Josh Suereth 2012-05-30 21:28:20 -04:00 committed by Mark Harrah
parent 8bca690e0a
commit 76d24091fa
3 changed files with 13 additions and 13 deletions

View File

@ -47,7 +47,7 @@ object ConfigurationParser
} }
class ConfigurationParser class ConfigurationParser
{ {
def apply(file: File): LaunchConfiguration = Using(new InputStreamReader(new FileInputStream(file), "UTF-8"))(apply) def apply(file: File): LaunchConfiguration = Using(newReader(file))(apply)
def apply(s: String): LaunchConfiguration = Using(new StringReader(s))(apply) def apply(s: String): LaunchConfiguration = Using(new StringReader(s))(apply)
def apply(reader: Reader): LaunchConfiguration = Using(new BufferedReader(reader))(apply) def apply(reader: Reader): LaunchConfiguration = Using(new BufferedReader(reader))(apply)
private def apply(in: BufferedReader): LaunchConfiguration = private def apply(in: BufferedReader): LaunchConfiguration =
@ -57,16 +57,15 @@ class ConfigurationParser
case null => accum.reverse case null => accum.reverse
case line => readLine(in, ParseLine(line,index) ::: accum, index+1) case line => readLine(in, ParseLine(line,index) ::: accum, index+1)
} }
private def newReader(file: File) = new InputStreamReader(new FileInputStream(file), "UTF-8")
def readRepositoriesConfig(file: File): List[xsbti.Repository] = def readRepositoriesConfig(file: File): List[xsbti.Repository] =
Using(new InputStreamReader(new FileInputStream(file), "UTF-8"))(readRepositoriesConfig) Using(newReader(file))(readRepositoriesConfig)
def readRepositoriesConfig(reader: Reader): List[xsbti.Repository] = def readRepositoriesConfig(reader: Reader): List[xsbti.Repository] =
Using(new BufferedReader(reader))(readRepositoriesConfig) Using(new BufferedReader(reader))(readRepositoriesConfig)
private def readRepositoriesConfig(in: BufferedReader): List[xsbti.Repository] = private def readRepositoriesConfig(in: BufferedReader): List[xsbti.Repository] =
processRepositoriesConfig(processLines(readLine(in, Nil, 0))) processRepositoriesConfig(processLines(readLine(in, Nil, 0)))
def processRepositoriesConfig(sections: SectionMap): List[xsbti.Repository] = def processRepositoriesConfig(sections: SectionMap): List[xsbti.Repository] =
processSection(sections, "repositories", getRepositories) match { processSection(sections, "repositories", getRepositories)._1
case (repositories, _) => repositories
}
// section -> configuration instance processing // section -> configuration instance processing
def processSections(sections: SectionMap): LaunchConfiguration = def processSections(sections: SectionMap): LaunchConfiguration =
{ {
@ -135,8 +134,8 @@ class ConfigurationParser
{ {
val (ivyHome, m1) = optfile(m, "ivy-home") val (ivyHome, m1) = optfile(m, "ivy-home")
val (checksums, m2) = ids(m1, "checksums", BootConfiguration.DefaultChecksums) val (checksums, m2) = ids(m1, "checksums", BootConfiguration.DefaultChecksums)
val (overrideRepos, m3) = bool(m2, "override-build", false) val (overrideRepos, m3) = bool(m2, "override-build-repos", false)
val (repoConfig, m4) = optfile(m3, "resolver-config") val (repoConfig, m4) = optfile(m3, "repository-config")
check(m4, "label") check(m4, "label")
(ivyHome, checksums, overrideRepos, repoConfig filter (_.exists)) (ivyHome, checksums, overrideRepos, repoConfig filter (_.exists))
} }

View File

@ -21,5 +21,5 @@ ${{repositories}}
[ivy] [ivy]
ivy-home: ${sbt.ivy.home-${user.home}/.ivy2/} ivy-home: ${sbt.ivy.home-${user.home}/.ivy2/}
checksums: ${sbt.checksums-sha1,md5} checksums: ${sbt.checksums-sha1,md5}
override-build: ${sbt.override.build.repos-false} override-build-repos: ${sbt.override.build.repos-false}
resolver-config: ${sbt.resolver.config-${sbt.global.base-${user.home}/.sbt}/repositories} repository-config: ${sbt.resolver.config-${sbt.global.base-${user.home}/.sbt}/repositories}

View File

@ -786,10 +786,11 @@ object Classpaths
}, },
bootResolvers <<= appConfiguration map bootRepositories, bootResolvers <<= appConfiguration map bootRepositories,
fullResolvers <<= (projectResolver,externalResolvers,sbtPlugin,sbtResolver,bootResolvers,overrideBuildResolvers) map { (proj,rs,isPlugin,sbtr, boot, overrideFlag) => fullResolvers <<= (projectResolver,externalResolvers,sbtPlugin,sbtResolver,bootResolvers,overrideBuildResolvers) map { (proj,rs,isPlugin,sbtr, boot, overrideFlag) =>
if(overrideFlag && boot.isDefined) boot.get boot match {
else { case Some(repos) if overrideFlag => repos
val base = if(isPlugin) sbtr +: sbtPluginReleases +: rs else rs case _ =>
proj +: base val base = if(isPlugin) sbtr +: sbtPluginReleases +: rs else rs
proj +: base
} }
}, },
offline in GlobalScope :== false, offline in GlobalScope :== false,