Initial commit: PhotoPhetch v1.0.0
Kotlin/Compose Multiplatform desktop app for importing photos from
phones into PhotoPhile staging directory.
Features:
- Android support via ADB subprocess
- iPhone support via gphoto2 subprocess
- Smart filtering: excludes screenshots, received images, Live Photo MOVs
- HEIC -> JPEG conversion via macOS sips (built-in)
- SHA-256 verification of every copied file
- Safe delete with explicit confirmation
- Staging path convention: _staging/{date}_{device}/
- Config persistence at ~/.photophetch/config.json
This commit is contained in:
48
build.gradle.kts
Normal file
48
build.gradle.kts
Normal file
@@ -0,0 +1,48 @@
|
||||
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.kotlin.jvm)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
alias(libs.plugins.compose.multiplatform)
|
||||
}
|
||||
|
||||
group = "com.bolenpad.photophetch"
|
||||
version = "1.0.0"
|
||||
|
||||
kotlin {
|
||||
jvmToolchain(21)
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(compose.desktop.currentOs)
|
||||
implementation(compose.material3)
|
||||
implementation(compose.materialIconsExtended)
|
||||
implementation(libs.coroutines.core)
|
||||
implementation(libs.coroutines.swing)
|
||||
implementation(libs.serialization.json)
|
||||
implementation(libs.slf4j.api)
|
||||
implementation(libs.logback.classic)
|
||||
}
|
||||
|
||||
compose.desktop {
|
||||
application {
|
||||
mainClass = "com.bolenpad.photophetch.MainKt"
|
||||
|
||||
nativeDistributions {
|
||||
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
|
||||
packageName = "PhotoPhetch"
|
||||
packageVersion = "1.0.0"
|
||||
description = "Import photos from phones into PhotoPhile"
|
||||
vendor = "bolenpad"
|
||||
macOS {
|
||||
bundleID = "com.bolenpad.photophetch"
|
||||
iconFile.set(project.file("src/main/resources/icon.icns"))
|
||||
}
|
||||
}
|
||||
|
||||
// Fat JAR for quick distribution
|
||||
buildTypes.release.proguard {
|
||||
isEnabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user