Initial implementation of APKINDEX, fetching, reading, parsing, & merging

This commit is contained in:
2024-11-08 21:22:33 +11:00
parent f6cbddb608
commit 941dfae317
18 changed files with 877 additions and 65 deletions

View File

@ -8,68 +8,9 @@ struct DarwinApkCLI: ParsableCommand {
commandName: "dpk",
abstract: "Command-line interface for managing packages installed via darwin-apk.",
subcommands: [
Install.self,
Remove.self,
Update.self,
Upgrade.self
DpkInstallCommand.self,
DpkRemoveCommand.self,
DpkUpdateCommand.self,
DpkUpgradeCommand.self
])
}
extension DarwinApkCLI {
struct Install: ParsableCommand {
static let configuration = CommandConfiguration(
commandName: "add",
abstract: "Install package(s) to the system.",
aliases: [ "install", "i", "a" ])
@Argument(help: "One or more package names to install to the system.")
var packages: [String]
func run() throws {
print("installing \"\(packages.joined(separator: "\", \""))\"")
}
}
struct Remove: ParsableCommand {
static let configuration = CommandConfiguration(
commandName: "remove",
abstract: "Remove specified package(s) from the system.",
aliases: [ "uninstall", "del", "rem", "r" ])
@Argument(help: "One or more package names to uninstall from the system.")
var packages: [String]
func run() throws {
print("uninstalling \"\(packages.joined(separator: "\", \""))\"")
}
}
struct Update: ParsableCommand {
static let configuration = CommandConfiguration(
commandName: "update",
abstract: "Update the system package repositories.",
aliases: [ "u" ])
func run() throws {
print("updating package repositories")
}
}
struct Upgrade: ParsableCommand {
static let configuration = CommandConfiguration(
commandName: "upgrade",
abstract: "Upgrade installed packages.",
aliases: [ "U" ])
@Argument(help: "Optionally specify packages to upgrade. Otherwise upgrade all packages installed on the system.")
var packages: [String] = []
func run() throws {
if packages.isEmpty {
print("upgrading system")
} else {
print("upgrading invidual packages: \"\(packages.joined(separator: "\", \""))\"")
}
}
}
}