-
Notifications
You must be signed in to change notification settings - Fork 78
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Native and ScalaJS support + ci fixed (#289)
* crossplatform ci * changing JVM * repaired * changed path imports * fixed tests * changed path import * changed path imports * fixed tests imports * ci * ci
- Loading branch information
Showing
37 changed files
with
514 additions
and
223 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,19 @@ | ||
addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.5.13") | ||
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.11.0") | ||
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0") | ||
addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.5.0") | ||
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.11") | ||
addSbtPlugin("com.github.cb372" % "sbt-explicit-dependencies" % "0.2.16") | ||
addSbtPlugin("com.thoughtworks.sbt-api-mappings" % "sbt-api-mappings" % "3.0.0") | ||
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") | ||
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.14.0") | ||
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.3.2") | ||
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") | ||
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.9") | ||
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.6") | ||
addSbtPlugin("org.scalameta" % "sbt-native-image" % "0.3.2") | ||
addSbtPlugin("dev.zio" % "zio-sbt-website" % "0.3.6") | ||
addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.5.13") | ||
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.11.0") | ||
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0") | ||
addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.5.0") | ||
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.11") | ||
addSbtPlugin("com.github.cb372" % "sbt-explicit-dependencies" % "0.2.16") | ||
addSbtPlugin("com.thoughtworks.sbt-api-mappings" % "sbt-api-mappings" % "3.0.0") | ||
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") | ||
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.14.0") | ||
addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.3.2") | ||
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.16") | ||
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.3.2") | ||
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") | ||
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.9") | ||
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.6") | ||
addSbtPlugin("org.scalameta" % "sbt-native-image" % "0.3.2") | ||
addSbtPlugin("dev.zio" % "zio-sbt-website" % "0.3.6") | ||
|
||
resolvers += Resolver.sonatypeRepo("public") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package zio.cli | ||
|
||
/** | ||
* A `Args` represents arguments that can be passed to a command-line application. | ||
*/ | ||
private[cli] trait ArgsPlatformSpecific {} |
25 changes: 25 additions & 0 deletions
25
zio-cli/js/src/main/scala/zio/cli/CompgenPlatformSpecific.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package zio.cli.completion | ||
|
||
import zio._ | ||
import java.io.File | ||
import scala.annotation.nowarn | ||
|
||
/** | ||
* `Compgen` simplifies the process of calling Bash's built-in `compgen` command. | ||
*/ | ||
|
||
private[cli] trait CompgenPlatformSpecific { | ||
def live: Compgen = create(None) | ||
def test(workingDirectory: File): Compgen = create(Some(workingDirectory)) | ||
|
||
@nowarn | ||
private def create(workingDirectory: Option[File]): Compgen = new Compgen { | ||
|
||
type CommandError = Nothing | ||
|
||
def completeFileNames(word: String): ZIO[Any, CommandError, List[String]] = ZIO.succeed(Nil) | ||
|
||
def completeDirectoryNames(word: String): ZIO[Any, CommandError, List[String]] = ZIO.succeed(Nil) | ||
|
||
} | ||
} |
9 changes: 8 additions & 1 deletion
9
zio-cli/js/src/main/scala/zio/cli/OptionsPlatformSpecific.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,11 @@ | ||
package zio | ||
package cli | ||
|
||
private[cli] trait OptionsPlatformSpecific { self: Options.type => } | ||
private[cli] trait OptionsPlatformSpecific extends PathPlatformSpecific { self: Options.type => | ||
|
||
/** | ||
* Creates a parameter expecting path to the file. | ||
*/ | ||
def file(name: String, exists: Exists = Exists.Either): Options[JPath] = | ||
Single(name, Vector.empty, PrimType.Path(PathType.File, exists)) | ||
} |
13 changes: 13 additions & 0 deletions
13
zio-cli/js/src/main/scala/zio/cli/PathPlatformSpecific.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package zio.cli | ||
|
||
private[cli] trait PathPlatformSpecific { | ||
|
||
type JPath = String | ||
|
||
} | ||
|
||
private[cli] object PathPlatformSpecific { | ||
|
||
type JPath = String | ||
|
||
} |
23 changes: 23 additions & 0 deletions
23
zio-cli/js/src/main/scala/zio/cli/files/FileSystemPlatformSpecific.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package zio.cli.files | ||
|
||
import zio.{IO, UIO, ZIO} | ||
import zio.cli.PathPlatformSpecific | ||
|
||
private[cli] trait FileSystemPlatformSpecific extends PathPlatformSpecific { | ||
|
||
val live: FileSystem = new FileSystem { | ||
|
||
override def parsePath(path: String): IO[String, JPath] = | ||
ZIO.fail("FileSystem is not available in ScalaJS") | ||
|
||
override def exists(path: JPath): UIO[Boolean] = | ||
ZIO.succeed(false) | ||
|
||
override def isDirectory(path: JPath): UIO[Boolean] = | ||
ZIO.succeed(false) | ||
|
||
override def isRegularFile(path: JPath): UIO[Boolean] = | ||
ZIO.succeed(false) | ||
} | ||
|
||
} |
87 changes: 87 additions & 0 deletions
87
zio-cli/jvm/src/main/scala/zio/cli/ArgsPlatformSpecific.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
package zio.cli | ||
|
||
import java.nio.file.{Path => JPath} | ||
|
||
/** | ||
* A `Args` represents arguments that can be passed to a command-line application. | ||
*/ | ||
private[cli] trait ArgsPlatformSpecific { | ||
|
||
import zio.cli.Args._ | ||
|
||
/** | ||
* Creates a file argument with a custom argument name | ||
* | ||
* @param name | ||
* Argument name | ||
* @param exists | ||
* Yes if path is expected to exists, No otherwise or Either is both are acceptable. | ||
* @return | ||
* File argument | ||
*/ | ||
def file(name: String, exists: Exists = Exists.Either): Args[JPath] = | ||
Single(Some(name), PrimType.Path(PathType.File, exists)) | ||
|
||
/** | ||
* Creates a file argument with 'file' as argument name | ||
* | ||
* @param exists | ||
* Yes if path is expected to exists, No otherwise or Either is both are acceptable. | ||
* @return | ||
* File argument | ||
*/ | ||
def file(exists: Exists): Args[JPath] = | ||
Single(None, PrimType.Path(PathType.File, exists)) | ||
|
||
/** | ||
* Creates a file argument with 'file' as argument name, and exists being 'Either' | ||
*/ | ||
val file: Args[JPath] = file(Exists.Either) | ||
|
||
/** | ||
* Creates a directory argument with a custom argument name | ||
* | ||
* @param name | ||
* Argument name | ||
* @param exists | ||
* Yes if path is expected to exists, No otherwise or Either is both are acceptable. | ||
* @return | ||
* Directory argument | ||
*/ | ||
def directory(name: String, exists: Exists = Exists.Either): Args[JPath] = | ||
Single(Some(name), PrimType.Path(PathType.Directory, exists)) | ||
|
||
/** | ||
* Creates a directory argument with 'directory' as argument name | ||
* | ||
* @param exists | ||
* Yes if path is expected to exists, No otherwise or Either is both are acceptable. | ||
* @return | ||
* Directory argument | ||
*/ | ||
def directory(exists: Exists): Args[JPath] = | ||
Single(None, PrimType.Path(PathType.Directory, exists)) | ||
|
||
/** | ||
* Creates a directory argument with 'directory' as argument name, and exists being 'Either' | ||
*/ | ||
val directory: Args[JPath] = directory(Exists.Either) | ||
|
||
/** | ||
* Creates a path argument with a custom argument name | ||
* | ||
* @param name | ||
* Argument name | ||
* @return | ||
* Path argument | ||
*/ | ||
def path(name: String): Args[JPath] = | ||
Single(Some(name), PrimType.Path(PathType.Either, Exists.Either)) | ||
|
||
/** | ||
* Creates a path argument with 'path' as argument name | ||
*/ | ||
val path: Args[JPath] = | ||
Single(None, PrimType.Path(PathType.Either, Exists.Either)) | ||
|
||
} |
Oops, something went wrong.