-
Notifications
You must be signed in to change notification settings - Fork 50
Expand file tree
/
Copy pathProjectPlugin.scala
More file actions
134 lines (121 loc) · 4.89 KB
/
Copy pathProjectPlugin.scala
File metadata and controls
134 lines (121 loc) · 4.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import microsites.MicrositesPlugin.autoImport._
import com.typesafe.sbt.site.SitePlugin.autoImport._
import sbt.Keys._
import sbt._
import sbtorgpolicies.OrgPoliciesPlugin
import sbtorgpolicies.OrgPoliciesPlugin.autoImport._
import sbtorgpolicies.runnable.syntax._
import sbtorgpolicies.templates.badges._
import scoverage.ScoverageKeys
import tut.TutPlugin.autoImport._
object ProjectPlugin extends AutoPlugin {
override def trigger: PluginTrigger = allRequirements
override def requires: Plugins = OrgPoliciesPlugin
object autoImport {
lazy val commonCrossDependencies =
Seq(
libraryDependencies ++=
Seq("org.typelevel" %% "cats-effect" % "1.2.0",
%%("scalatest") % "test"))
lazy val micrositeSettings: Seq[Def.Setting[_]] = Seq(
micrositeName := "Fetch",
micrositeDescription := "Simple & Efficient data access for Scala and Scala.js",
micrositeBaseUrl := "fetch",
micrositeDocumentationUrl := "/fetch/docs.html",
micrositeGithubOwner := "47deg",
micrositeGithubRepo := "fetch",
micrositeHighlightTheme := "tomorrow",
micrositePalette := Map(
"brand-primary" -> "#FF518C",
"brand-secondary" -> "#2F2859",
"brand-tertiary" -> "#28224C",
"gray-dark" -> "#48474C",
"gray" -> "#8D8C92",
"gray-light" -> "#E3E2E3",
"gray-lighter" -> "#F4F3F9",
"white-color" -> "#FFFFFF"
),
includeFilter in makeSite := "*.html" | "*.css" | "*.png" | "*.jpg" | "*.gif" | "*.js" | "*.swf" | "*.md",
micrositeGithubToken := getEnvVar("ORG_GITHUB_TOKEN"),
micrositePushSiteWith := GitHub4s
)
lazy val commonTutSettings: Seq[Def.Setting[_]] = Seq(
scalacOptions in Tut ~= (_.filterNot(Set("-Ywarn-unused-import", "-Ywarn-dead-code"))),
scalacOptions in Tut ++= (scalaBinaryVersion.value match {
case "2.10" => Seq("-Xdivergence211")
case _ => Nil
})
)
lazy val docsSettings: Seq[Def.Setting[_]] = micrositeSettings ++ commonTutSettings ++ Seq(
aggregate in doc := true)
lazy val readmeSettings: Seq[Def.Setting[_]] = commonTutSettings ++ Seq(
tutSourceDirectory := (baseDirectory in LocalRootProject).value / "tut",
tutTargetDirectory := baseDirectory.value.getParentFile,
tutNameFilter := """README.md""".r
)
lazy val examplesSettings = Seq(libraryDependencies ++= Seq(
%%("circe-generic"),
%%("doobie-core"),
%%("doobie-h2"),
"org.tpolecat" %% "atto-core" % "0.6.5",
"org.http4s" %% "http4s-blaze-client" % "0.19.0-M2",
"org.http4s" %% "http4s-circe" % "0.19.0-M2",
"redis.clients" % "jedis" % "2.9.0"
)) ++ commonCrossDependencies
}
lazy val commandAliases: Seq[Def.Setting[_]] =
addCommandAlias("validate", ";clean;validateJS;validateJVM") ++
addCommandAlias("validateDocs", List("docs/tut", "readme/tut", "project root").asCmd) ++
addCommandAlias("validateCoverage", ";coverage;validate;coverageReport;coverageOff") ++
addCommandAlias(
"validateJVM",
List(
"fetchJVM/compile",
"fetchJVM/test",
"project root").asCmd) ++
addCommandAlias(
"validateJS",
List("fetchJS/compile", "fetchJS/test", "project root").asCmd)
override def projectSettings: Seq[Def.Setting[_]] =
commandAliases ++
Seq(
description := "Simple & Efficient data access for Scala and Scala.js",
orgProjectName := "Fetch",
startYear := Option(2016),
homepage := Option(url("http://47deg.github.io/fetch/")),
orgBadgeListSetting := List(
GitterBadge.apply(_),
TravisBadge.apply(_),
CodecovBadge.apply(_),
MavenCentralBadge.apply(_),
LicenseBadge.apply(_),
ScalaLangBadge.apply(_),
ScalaJSBadge.apply(_),
GitHubIssuesBadge.apply(_)
),
orgSupportedScalaJSVersion := Some("0.6.20"),
orgScriptTaskListSetting := List(
"validateDocs".asRunnableItemFull,
"validateCoverage".asRunnableItemFull
),
orgUpdateDocFilesSetting += baseDirectory.value / "tut",
scalaOrganization := "org.scala-lang",
scalaVersion := "2.12.8",
crossScalaVersions := List("2.11.12", "2.12.8"),
resolvers += Resolver.sonatypeRepo("snapshots"),
resolvers += Resolver.sonatypeRepo("releases"),
addCompilerPlugin("org.spire-math" %% "kind-projector" % "0.9.7"),
addCompilerPlugin("com.olegpy" %% "better-monadic-for" % "0.2.4"),
scalacOptions := Seq(
"-unchecked",
"-deprecation",
"-feature",
"-Ywarn-dead-code",
"-language:higherKinds",
"-language:existentials",
"-language:postfixOps",
"-Ypartial-unification"
),
ScoverageKeys.coverageFailOnMinimum := false
) ++ shellPromptSettings
}