diff --git a/library/src/main/scala/giter8/Ls.scala b/library/src/main/scala/giter8/Ls.scala new file mode 100644 index 00000000..bfc699e0 --- /dev/null +++ b/library/src/main/scala/giter8/Ls.scala @@ -0,0 +1,30 @@ +/* + * Copyright 2017 by foundweekends project + * + * Licensed 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. + */ + +package giter8 + +import scala.util.parsing.combinator._ + +object Ls extends JavaTokenParsers { + private val owner, name = """[\w\-\.]+""".r + private val spec = + "ls" ~> "(" ~> owner ~ ("," ~> name) <~ ")" ^^ { + case owner ~ name => (owner, name) + } + + def unapply(value: String): Option[(String, String)] = + Some(parse(spec, value)).filter { _.successful }.map { _.get } +} diff --git a/library/src/main/scala/maven.scala b/library/src/main/scala/maven.scala index 5974d1cc..be5dc0b2 100644 --- a/library/src/main/scala/maven.scala +++ b/library/src/main/scala/maven.scala @@ -77,8 +77,13 @@ object Maven extends JavaTokenParsers with MavenHelper { } } + def lsIsGone(artifact: String): VersionE = + Left("ls() function is deprecated. " + + s"Use maven() function to get latest version of ${artifact.trim}.") + def lookup(rawDefaults: G8.OrderedProperties): Either[String, G8.OrderedProperties] = { val defaults = rawDefaults.map { + case (k, Ls(owner, name)) => k -> lsIsGone(name) case (k, Maven(org, name, Some("stable"))) => k -> latestStableVersion(org, name) case (k, Maven(org, name, _)) => k -> latestVersion(org, name) case (k, value) => k -> Right(value)