Skip to content

Commit 8783ea4

Browse files
committed
add search to cli
1 parent 947285d commit 8783ea4

File tree

3 files changed

+54
-25
lines changed

3 files changed

+54
-25
lines changed

src/main/scala/update/Main.scala

Lines changed: 49 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package update
22

33
import tui.TUI
44
import update.versions.Versions
5+
import view.{VerticalAlignment, View}
56
import zio._
67

78
sealed trait Subcommand extends Product with Serializable
@@ -29,21 +30,58 @@ object Main extends ZIOAppDefault {
2930
subcommand = Subcommand.parse(args.toList)
3031
_ <- subcommand match {
3132
case Some(Subcommand.Interactive) =>
32-
ZIO
33-
.serviceWithZIO[CLI](_.run)
34-
.provide(
35-
CLI.live,
36-
TUI.live(false),
37-
DependencyUpdater.live,
38-
Versions.live,
39-
Files.live
40-
)
33+
runInteractive
4134
case Some(Subcommand.Search(query)) =>
42-
search.Search().searchCLI(query)
35+
runSearch(query)
4336
case None =>
44-
ZIO.debug("Unknown subcommand")
37+
helpMessage
4538
}
4639
} yield ()
4740
}
4841

42+
lazy val runInteractive =
43+
ZIO
44+
.serviceWithZIO[CLI](_.run)
45+
.provide(
46+
CLI.live,
47+
TUI.live(false),
48+
DependencyUpdater.live,
49+
Versions.live,
50+
Files.live
51+
)
52+
53+
private def runSearch(query: String) =
54+
search.Search().searchCLI(query)
55+
56+
lazy val helpMessage = {
57+
val view =
58+
View
59+
.vertical(
60+
View.text("SCALA UPDATE COMMANDS").blue,
61+
View.text("─────────────────────").blue.dim,
62+
"",
63+
View.horizontal(1, VerticalAlignment.top)(
64+
View.text("1.").dim,
65+
View.vertical(
66+
View.text("scala-update").blue.bold,
67+
View.text("Interactively update your library dependencies.").dim
68+
)
69+
),
70+
"",
71+
View.horizontal(1, VerticalAlignment.top)(
72+
View.text("2.").dim,
73+
View.vertical(
74+
View.horizontal(
75+
View.text("scala-update").blue.dim,
76+
View.text("search").blue.bold,
77+
View.text("<query>").blue
78+
),
79+
View.text("Search for Maven-hosted libraries.").dim
80+
)
81+
)
82+
)
83+
.padding(1)
84+
85+
ZIO.debug(view.render(80, 10))
86+
}
4987
}

src/main/scala/update/search/Search.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ object Doc {
115115

116116
final case class Search() {
117117

118-
def search(query: String): ZIO[Any, Throwable, List[SearchResult]] = {
118+
def search(query: String): Task[List[SearchResult]] = {
119119
val urlEncodedQuery = URLEncoder.encode(query, "UTF-8")
120120
val url = s"https://search.maven.org/solrsearch/select?q=$urlEncodedQuery&start=0&rows=60"
121121
for {
@@ -131,22 +131,22 @@ final case class Search() {
131131
.distinctBy(sr => (sr.group, sr.artifact, sr.latestVersion))
132132
}
133133

134-
def searchCLI(query: String): Task[List[SearchResult]] =
134+
def searchCLI(query: String): Task[Unit] =
135135
for {
136136
results <- search(query)
137137
_ <- ZIO.debug(
138138
View
139139
.vertical(
140140
Chunk(
141-
View.text("LATEST PACKAGES").blue,
141+
View.horizontal(View.text("MAVEN PACKAGES FOR").blue, View.text(query).blue.underlined),
142142
View.text("───────────────").blue.dim
143143
) ++
144144
results.map(_.render): _*
145145
)
146146
.padding(1)
147147
.renderNow
148148
)
149-
} yield results
149+
} yield ()
150150

151151
}
152152

src/main/scala/update/versions/VersionsLive.scala

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ final case class VersionsLive() extends Versions {
3232
Map("scalaVersion" -> scalaVersion) ++ sbtVersion.map("sbtVersion" -> _)
3333
),
3434
cache.fetch,
35-
true
35+
versionsCheckHasModule = true
3636
)
3737
.run
3838
.map(_.left.map(new Error(_)))
@@ -46,12 +46,3 @@ final case class VersionsLive() extends Versions {
4646
}
4747

4848
}
49-
50-
//object VersionsDemo extends ZIOAppDefault {
51-
// val run = {
52-
// for {
53-
// _ <- VersionsLive().getVersions(Group("dev.zio"), Artifact("zio-json")).debug("Library Versions")
54-
// _ <- VersionsLive().getVersions(Group("com.github.sbt"), Artifact("sbt-native-packager")).debug("Plugin Versions")
55-
// } yield ()
56-
// }
57-
//}

0 commit comments

Comments
 (0)