~ Notifications a separate module * Cached downloads graph not showing up

This commit is contained in:
David Bureš 2024-08-04 23:06:10 +02:00
parent 2f28e0d8dd
commit 7964ac26d0
88 changed files with 143 additions and 5 deletions

View File

@ -8,6 +8,8 @@
import AppKit
import Foundation
@preconcurrency import UserNotifications
import CorkShared
import CorkNotifications
/// Class that holds the global state of the app, excluding services
@MainActor

View File

@ -9,6 +9,7 @@ import AppKit
import DavidFoundation
import Foundation
import SwiftUI
import CorkShared
class AppDelegate: NSObject, NSApplicationDelegate, ObservableObject
{

View File

@ -8,6 +8,7 @@
// swiftlint:disable file_length
import SwiftUI
import CorkShared
struct ContentView: View, Sendable
{

View File

@ -10,6 +10,8 @@
import DavidFoundation
import SwiftUI
import UserNotifications
import CorkShared
import CorkNotifications
@main
struct CorkApp: App

View File

@ -7,6 +7,7 @@
import AppIntents
import Foundation
import CorkShared
struct GetInstalledCasksIntent: AppIntent
{

View File

@ -7,6 +7,7 @@
import AppIntents
import Foundation
import CorkShared
enum FolderAccessingError: LocalizedError
{

View File

@ -7,6 +7,7 @@
import AppIntents
import Foundation
import CorkShared
enum RefreshIntentResult: String, AppEnum
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum BrewfileDumpingError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum BrewfileReadingError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum TopPackageLoadingError: LocalizedError
{

View File

@ -7,6 +7,7 @@
import Foundation
import SwiftUI
import CorkShared
enum PackageLoadingError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
extension URL
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
@MainActor
func applyUninstallationSpinner(to package: BrewPackage, brewData: BrewDataStorage)

View File

@ -7,6 +7,7 @@
import Foundation
import SwiftUI
import CorkShared
extension BrewDataStorage
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
@MainActor
func loadUpTappedTaps() async -> [BrewTap]

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
func deleteCachedDownloads()
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum HealthCheckError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
/* enum CachePurgeError: Error
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum OrphanUninstallationError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum HomebrewCachePurgeError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum OrphanRemovalError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum CorkLicenseRetrievalError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum DataDownloadingError: LocalizedError
{

View File

@ -7,6 +7,7 @@
import Foundation
import SwiftUI
import CorkShared
enum OutdatedPackageRetrievalError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
@MainActor
func loadUpPackages(whatToLoad: PackageType, appState: AppState) async -> Set<BrewPackage>

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum BrewPackageInfoLoadingError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
func pinAndUnpinPackage(package: BrewPackage, pinned: Bool) async
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
private enum PackageRetrievalByUUIDError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
func searchForPackage(packageName: String, packageType: PackageType) async throws -> [String]
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum HomebrewServiceLoadingError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
extension ServicesTracker
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
extension ServicesTracker
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum ServiceStoppingError: LocalizedError
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
extension HomebrewService
{

View File

@ -7,6 +7,7 @@
import Foundation
import SwiftUI
import CorkShared
struct SearchResults
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
@discardableResult
func shell(

View File

@ -7,6 +7,7 @@
import AppKit
import Foundation
import CorkShared
func submitSystemVersion() async throws
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
@MainActor
func applyTagsToPackageTrackingArray(appState: AppState, brewData: BrewDataStorage) async throws

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
@MainActor
func changePackageTagStatus(package: BrewPackage, brewData: BrewDataStorage, appState: AppState) async

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
func loadTaggedIDsFromDisk() throws -> Set<String>
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
@MainActor
func saveTaggedIDsToDisk(appState: AppState) throws

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
func addTap(name: String, forcedRepoAddress: String? = nil) async -> String
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
func parseTapInfo(from rawJSON: String) async throws -> TapInfo?
{

View File

@ -7,6 +7,7 @@
import Foundation
import SwiftUI
import CorkShared
enum UntapError: LocalizedError
{

View File

@ -7,6 +7,7 @@
import Foundation
import SwiftUI
import CorkShared
@MainActor
func refreshPackages(_ updateProgressTracker: UpdateProgressTracker, outdatedPackageTracker: OutdatedPackageTracker) async -> PackageUpdateAvailability

View File

@ -7,6 +7,7 @@
import Foundation
import SwiftUI
import CorkShared
@MainActor
func updatePackages(updateProgressTracker: UpdateProgressTracker, detailStage: UpdatingProcessDetails) async

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
class InstallationProgressTracker: ObservableObject
{

View File

@ -6,6 +6,7 @@
//
import Foundation
import CorkShared
enum PinningUnpinningError: LocalizedError
{

View File

@ -8,6 +8,7 @@
import AppKit
import DavidFoundation
import Foundation
import CorkShared
/// A representation of a Homebrew package
struct BrewPackage: Identifiable, Equatable, Hashable

View File

@ -6,6 +6,8 @@
//
import SwiftUI
import CorkShared
import CorkNotifications
struct AddFormulaView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct SearchResultRow: View, Sendable
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct InstallationInitialView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct InstallingPackageView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct LiveTerminalOutputView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct LicensingView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct Licensing_DemoView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct Licensing_NotBoughtOrActivatedView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct MaintenanceFinishedView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct MaintenanceRunningView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct MaintenanceReadyView: View
{

View File

@ -6,6 +6,8 @@
//
import SwiftUI
import CorkShared
import CorkNotifications
struct MenuBar_CacheCleanup: View
{

View File

@ -6,6 +6,8 @@
//
import SwiftUI
import CorkShared
import CorkNotifications
struct MenuBar_CachedDownloadsCleanup: View
{

View File

@ -6,6 +6,8 @@
//
import SwiftUI
import CorkShared
import CorkNotifications
struct MenuBar_OrphanCleanup: View
{

View File

@ -6,6 +6,8 @@
//
import SwiftUI
import CorkShared
import CorkNotifications
struct OnboardingView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
enum SetupLevels: Identifiable, CaseIterable
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct PackageDetailView: View, Sendable
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct PackageModificationButtons: View
{

View File

@ -7,6 +7,7 @@
import Foundation
import SwiftUI
import CorkShared
struct ReinstallCorruptedPackageView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct UninstallPackageButton: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
enum ReasonsForServiceLoadingFailure
{

View File

@ -7,6 +7,7 @@
import Foundation
import SwiftUI
import CorkShared
struct BrewPane: View
{

View File

@ -7,6 +7,7 @@
import SwiftUI
import UserNotifications
import CorkShared
struct NotificationsPane: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct CustomHomebrewExecutableView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct TapsSection: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct StartPage: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct PackageAndTapOverviewBox: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct AddTapAddingView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct AddTapFinishedView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct TapDetailView: View, Sendable
{

View File

@ -6,6 +6,8 @@
//
import SwiftUI
import CorkShared
import CorkNotifications
struct ErroredOutStageView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkNotifications
struct FinishedStageView: View
{

View File

@ -6,6 +6,8 @@
//
import SwiftUI
import CorkShared
import CorkNotifications
struct NoUpdatesAvailableStageView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct CheckingForUpdatesStateView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct UpdatingPackageTrackerStateView: View
{

View File

@ -6,6 +6,7 @@
//
import SwiftUI
import CorkShared
struct UpdateSomePackagesView: View
{

View File

@ -8,6 +8,7 @@
import Foundation
import SwiftUI
import UserNotifications
import CorkShared
func sendNotification(title: String, body: String? = nil, subtitle: String? = nil, sensitivity: UNNotificationInterruptionLevel = .timeSensitive)
{

View File

@ -100,16 +100,16 @@ enum AppConstants
// MARK: - Storage for tagging
static let documentsDirectoryPath: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("Cork", conformingTo: .directory)
static let metadataFilePath: URL = documentsDirectoryPath.appendingPathComponent("Metadata", conformingTo: .data)
public static let documentsDirectoryPath: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appending(component: "Cork", directoryHint: .isDirectory)
public static let metadataFilePath: URL = documentsDirectoryPath.appending(component: "Metadata", directoryHint: .notDirectory).appendingPathExtension("brewmeta")
// MARK: - Brew Cache
static let brewCachePath: URL = URL.libraryDirectory.appendingPathComponent("Caches", conformingTo: .directory).appendingPathComponent("Homebrew", conformingTo: .directory) // /Users/david/Library/Caches/Homebrew
public static let brewCachePath: URL = URL.libraryDirectory.appending(component: "Caches", directoryHint: .isDirectory).appending(component: "Homerbew", directoryHint: .isDirectory) // /Users/david/Library/Caches/Homebrew
/// These two have the symlinks to the actual downloads
static let brewCachedFormulaeDownloadsPath: URL = brewCachePath
static let brewCachedCasksDownloadsPath: URL = brewCachePath.appendingPathComponent("Cask", conformingTo: .directory)
public static let brewCachedFormulaeDownloadsPath: URL = brewCachePath
public static let brewCachedCasksDownloadsPath: URL = brewCachePath.appending(component: "Cask", directoryHint: .isDirectory)
/// This one has all the downloaded files themselves
static let brewCachedDownloadsPath: URL = brewCachePath.appendingPathComponent("downloads", conformingTo: .directory)

View File

@ -32,6 +32,8 @@ let project = Project(
"Cork/Logic/Helpers/Programs/Sudo Helper",
], dependencies: [
// .target(name: "CorkHelp"),
.target(name: "CorkShared"),
.target(name: "CorkNotifications"),
.external(name: "LaunchAtLogin"),
.external(name: "DavidFoundation"),
.package(product: "SwiftLintBuildToolPlugin", type: .plugin),
@ -46,6 +48,47 @@ let project = Project(
),
])
),
.target(
name: "CorkShared",
destinations: [.mac],
product: .staticLibrary,
bundleId: "com.davidbures.cork-shared",
sources: [
"Modules/Shared/**/*.swift"
],
settings: .settings(configurations: [
.debug(
name: "Debug",
xcconfig: .relativeToRoot("xcconfigs/Cork.xcconfig")
),
.release(
name: "Release",
xcconfig: .relativeToRoot("xcconfigs/Cork.xcconfig")
)
])
),
.target(
name: "CorkNotifications",
destinations: [.mac],
product: .staticLibrary,
bundleId: "com.davidbures.cork-notifications",
sources: [
"Modules/Notifications/**/*.swift"
],
dependencies: [
.target(name: "CorkShared")
],
settings: .settings(configurations: [
.debug(
name: "Debug",
xcconfig: .relativeToRoot("xcconfigs/Cork.xcconfig")
),
.release(
name: "Release",
xcconfig: .relativeToRoot("xcconfigs/Cork.xcconfig")
)
])
),
.target(
name: "CorkHelp",
destinations: [.mac],