Skip to content

Commit b3fb558

Browse files
committed
Moved into api folder + listing Sketchbook
1 parent 5b27fc6 commit b3fb558

File tree

4 files changed

+56
-23
lines changed

4 files changed

+56
-23
lines changed

app/src/processing/app/Processing.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import com.github.ajalt.clikt.parameters.arguments.multiple
1010
import com.github.ajalt.clikt.parameters.options.flag
1111
import com.github.ajalt.clikt.parameters.options.help
1212
import com.github.ajalt.clikt.parameters.options.option
13-
import processing.app.contrib.Contributions
13+
import processing.app.api.Contributions
1414
import processing.app.ui.Start
1515
import java.io.File
1616
import java.util.prefs.Preferences

app/src/processing/app/contrib/Contributions.kt renamed to app/src/processing/app/api/Contributions.kt

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
package processing.app.contrib
1+
package processing.app.api
22

33
import com.github.ajalt.clikt.command.SuspendingCliktCommand
44
import com.github.ajalt.clikt.core.Context
55
import com.github.ajalt.clikt.core.subcommands
66
import kotlinx.serialization.Serializable
77
import kotlinx.serialization.encodeToString
8+
import kotlinx.serialization.json.Json
89
import processing.app.Base
10+
import processing.app.api.Sketch.Companion.getSketches
911
import java.io.File
10-
import kotlinx.serialization.json.*
11-
1212

1313
class Contributions: SuspendingCliktCommand(){
1414
override fun help(context: Context) = "Manage Processing contributions"
@@ -47,7 +47,7 @@ class Contributions: SuspendingCliktCommand(){
4747
val sketches: List<Sketch> = emptyList()
4848
)
4949

50-
val serializer = Json{
50+
val serializer = Json {
5151
prettyPrint = true
5252
}
5353

@@ -61,7 +61,7 @@ class Contributions: SuspendingCliktCommand(){
6161
val javaMode = "$resourcesDir/modes/java"
6262
val javaModeExamples = "$javaMode/examples"
6363

64-
val javaExamples = getExamples(File(javaModeExamples))
64+
val javaExamples = getSketches(File(javaModeExamples))
6565

6666
val json = serializer.encodeToString(listOf(javaExamples))
6767
println(json)
@@ -74,22 +74,6 @@ class Contributions: SuspendingCliktCommand(){
7474
// Mode examples
7575
}
7676

77-
suspend fun getExamples(file: File): Folder {
78-
val name = file.name
79-
val (sketchesFolders, childrenFolders) = file.listFiles().partition { isExampleFolder(it) }
8077

81-
val children = childrenFolders.map { getExamples(it) }
82-
val sketches = sketchesFolders.map { Sketch(name = it.name, path = it.absolutePath) }
83-
return Folder(
84-
name = name,
85-
path = file.absolutePath,
86-
children = children,
87-
sketches = sketches
88-
)
89-
}
90-
fun isExampleFolder(file: File): Boolean {
91-
return file.isDirectory && file.listFiles().any { it.isFile && it.name.endsWith(".pde") }
92-
}
9378
}
94-
}
95-
79+
}

app/src/processing/app/api/Sketch.kt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package processing.app.api
2+
3+
import java.io.File
4+
5+
class Sketch {
6+
companion object{
7+
fun getSketches(file: File): Contributions.ExamplesList.Folder {
8+
val name = file.name
9+
val (sketchesFolders, childrenFolders) = file.listFiles().partition { isSketchFolder(it) }
10+
11+
val children = childrenFolders.map { getSketches(it) }
12+
val sketches = sketchesFolders.map { Contributions.ExamplesList.Sketch(name = it.name, path = it.absolutePath) }
13+
return Contributions.ExamplesList.Folder(
14+
name = name,
15+
path = file.absolutePath,
16+
children = children,
17+
sketches = sketches
18+
)
19+
}
20+
fun isSketchFolder(file: File): Boolean {
21+
return file.isDirectory && file.listFiles().any { it.isFile && it.name.endsWith(".pde") }
22+
}
23+
}
24+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package processing.app.api
2+
3+
import com.github.ajalt.clikt.command.SuspendingCliktCommand
4+
import com.github.ajalt.clikt.core.Context
5+
import com.github.ajalt.clikt.core.subcommands
6+
import processing.app.Base
7+
import processing.app.api.Sketch.Companion.getSketches
8+
9+
class Sketchbook: SuspendingCliktCommand() {
10+
override fun help(context: Context) = "Manage the sketchbook"
11+
override suspend fun run() {
12+
System.setProperty("java.awt.headless", "true")
13+
}
14+
init {
15+
subcommands(SketchbookList())
16+
}
17+
class SketchbookList: SuspendingCliktCommand("list") {
18+
override fun help(context: Context) = "List all sketches"
19+
override suspend fun run() {
20+
val sketchbookFolder = Base.getSketchbookFolder()
21+
22+
val sketches = getSketches(sketchbookFolder)
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)