mirror of https://github.com/buresdv/Cork
~ Loading of packages now a method
This commit is contained in:
parent
8e1605e5bf
commit
532f26742d
|
|
@ -238,12 +238,10 @@ struct ContentView: View, Sendable
|
||||||
async let availableFormulae = await loadUpPackages(whatToLoad: .formula, appState: appState)
|
async let availableFormulae = await loadUpPackages(whatToLoad: .formula, appState: appState)
|
||||||
async let availableCasks = await loadUpPackages(whatToLoad: .cask, appState: appState)
|
async let availableCasks = await loadUpPackages(whatToLoad: .cask, appState: appState)
|
||||||
|
|
||||||
async let availableTaps = await loadUpTappedTaps()
|
|
||||||
|
|
||||||
brewData.installedFormulae = await availableFormulae
|
brewData.installedFormulae = await availableFormulae
|
||||||
brewData.installedCasks = await availableCasks
|
brewData.installedCasks = await availableCasks
|
||||||
|
|
||||||
tapData.addedTaps = await availableTaps
|
await tapData.loadAddedTaps()
|
||||||
|
|
||||||
appState.assignPackageTypeToCachedDownloads(brewData: brewData)
|
appState.assignPackageTypeToCachedDownloads(brewData: brewData)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,113 @@
|
||||||
|
//
|
||||||
|
// Load up Tapped Taps.swift
|
||||||
|
// Cork
|
||||||
|
//
|
||||||
|
// Created by David Bureš on 10.02.2023.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
extension AvailableTaps
|
||||||
|
{
|
||||||
|
/// Load the added taps from disk
|
||||||
|
func loadAddedTaps() async
|
||||||
|
{
|
||||||
|
var finalAvailableTaps: [BrewTap] = .init()
|
||||||
|
|
||||||
|
let contentsOfTapFolder: [URL] = getContentsOfFolder(targetFolder: AppConstants.tapPath, options: .skipsHiddenFiles)
|
||||||
|
|
||||||
|
AppConstants.logger.debug("Contents of tap folder: \(contentsOfTapFolder)")
|
||||||
|
|
||||||
|
for tapRepoParentURL in contentsOfTapFolder
|
||||||
|
{
|
||||||
|
AppConstants.logger.debug("Tap repo: \(tapRepoParentURL)")
|
||||||
|
|
||||||
|
let contentsOfTapRepoParent: [URL] = getContentsOfFolder(targetFolder: tapRepoParentURL, options: .skipsHiddenFiles)
|
||||||
|
|
||||||
|
for repoURL in contentsOfTapRepoParent
|
||||||
|
{
|
||||||
|
let repoParentComponents: [String] = repoURL.pathComponents
|
||||||
|
|
||||||
|
let repoParentName: String = repoParentComponents.penultimate()!
|
||||||
|
|
||||||
|
let repoNameRaw: String = repoParentComponents.last!
|
||||||
|
let repoName = String(repoNameRaw.dropFirst(9))
|
||||||
|
|
||||||
|
let fullTapName = "\(repoParentName)/\(repoName)"
|
||||||
|
|
||||||
|
AppConstants.logger.info("Full tap name: \(fullTapName)")
|
||||||
|
|
||||||
|
finalAvailableTaps.append(BrewTap(name: fullTapName))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let nonLocalBasicTaps = await withTaskGroup(of: BrewTap?.self)
|
||||||
|
{ taskGroup in
|
||||||
|
if finalAvailableTaps.filter({ $0.name == "homebrew/core" }).isEmpty
|
||||||
|
{
|
||||||
|
AppConstants.logger.warning("Couldn't find homebrew/core in local taps")
|
||||||
|
taskGroup.addTask
|
||||||
|
{
|
||||||
|
let isCoreAdded = await checkIfTapIsAdded(tapToCheck: "homebrew/core")
|
||||||
|
if isCoreAdded
|
||||||
|
{
|
||||||
|
AppConstants.logger.info("homebrew/core is added, but not in local taps")
|
||||||
|
return BrewTap(name: "homebrew/core")
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AppConstants.logger.warning("homebrew/core is not added and not in local taps")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AppConstants.logger.info("Found homebrew/core in local taps")
|
||||||
|
}
|
||||||
|
|
||||||
|
if finalAvailableTaps.filter({ $0.name == "homebrew/cask" }).isEmpty
|
||||||
|
{
|
||||||
|
AppConstants.logger.warning("Couldn't find homebrew/cask in local taps")
|
||||||
|
taskGroup.addTask
|
||||||
|
{
|
||||||
|
let isCaskAdded = await checkIfTapIsAdded(tapToCheck: "homebrew/cask")
|
||||||
|
if isCaskAdded
|
||||||
|
{
|
||||||
|
return BrewTap(name: "homebrew/cask")
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AppConstants.logger.warning("homebrew/cask is not added and not in local taps")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AppConstants.logger.info("Found homebrew/cask in local taps")
|
||||||
|
}
|
||||||
|
|
||||||
|
var nonLocalBasicTapsInternal: [BrewTap] = .init()
|
||||||
|
|
||||||
|
for await tap in taskGroup
|
||||||
|
{
|
||||||
|
if let tap = tap
|
||||||
|
{
|
||||||
|
nonLocalBasicTapsInternal.append(tap)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nonLocalBasicTapsInternal
|
||||||
|
}
|
||||||
|
|
||||||
|
finalAvailableTaps.append(contentsOf: nonLocalBasicTaps)
|
||||||
|
|
||||||
|
return self.addedTaps = finalAvailableTaps
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func checkIfTapIsAdded(tapToCheck: String) async -> Bool
|
||||||
|
{
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
@ -1,112 +0,0 @@
|
||||||
//
|
|
||||||
// Load up Tapped Taps.swift
|
|
||||||
// Cork
|
|
||||||
//
|
|
||||||
// Created by David Bureš on 10.02.2023.
|
|
||||||
//
|
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
@MainActor
|
|
||||||
func loadUpTappedTaps() async -> [BrewTap]
|
|
||||||
{
|
|
||||||
var finalAvailableTaps: [BrewTap] = .init()
|
|
||||||
|
|
||||||
let contentsOfTapFolder: [URL] = getContentsOfFolder(targetFolder: AppConstants.tapPath, options: .skipsHiddenFiles)
|
|
||||||
|
|
||||||
AppConstants.logger.debug("Contents of tap folder: \(contentsOfTapFolder)")
|
|
||||||
|
|
||||||
for tapRepoParentURL in contentsOfTapFolder
|
|
||||||
{
|
|
||||||
AppConstants.logger.debug("Tap repo: \(tapRepoParentURL)")
|
|
||||||
|
|
||||||
let contentsOfTapRepoParent: [URL] = getContentsOfFolder(targetFolder: tapRepoParentURL, options: .skipsHiddenFiles)
|
|
||||||
|
|
||||||
for repoURL in contentsOfTapRepoParent
|
|
||||||
{
|
|
||||||
let repoParentComponents: [String] = repoURL.pathComponents
|
|
||||||
|
|
||||||
let repoParentName: String = repoParentComponents.penultimate()!
|
|
||||||
|
|
||||||
let repoNameRaw: String = repoParentComponents.last!
|
|
||||||
let repoName = String(repoNameRaw.dropFirst(9))
|
|
||||||
|
|
||||||
let fullTapName = "\(repoParentName)/\(repoName)"
|
|
||||||
|
|
||||||
AppConstants.logger.info("Full tap name: \(fullTapName)")
|
|
||||||
|
|
||||||
finalAvailableTaps.append(BrewTap(name: fullTapName))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// var nonLocalBasicTaps: [BrewTap] = .init()
|
|
||||||
|
|
||||||
let nonLocalBasicTaps = await withTaskGroup(of: BrewTap?.self)
|
|
||||||
{ taskGroup in
|
|
||||||
if finalAvailableTaps.filter({ $0.name == "homebrew/core" }).isEmpty
|
|
||||||
{
|
|
||||||
AppConstants.logger.warning("Couldn't find homebrew/core in local taps")
|
|
||||||
taskGroup.addTask
|
|
||||||
{
|
|
||||||
let isCoreAdded = await checkIfTapIsAdded(tapToCheck: "homebrew/core")
|
|
||||||
if isCoreAdded
|
|
||||||
{
|
|
||||||
AppConstants.logger.info("homebrew/core is added, but not in local taps")
|
|
||||||
return BrewTap(name: "homebrew/core")
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppConstants.logger.warning("homebrew/core is not added and not in local taps")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppConstants.logger.info("Found homebrew/core in local taps")
|
|
||||||
}
|
|
||||||
|
|
||||||
if finalAvailableTaps.filter({ $0.name == "homebrew/cask" }).isEmpty
|
|
||||||
{
|
|
||||||
AppConstants.logger.warning("Couldn't find homebrew/cask in local taps")
|
|
||||||
taskGroup.addTask
|
|
||||||
{
|
|
||||||
let isCaskAdded = await checkIfTapIsAdded(tapToCheck: "homebrew/cask")
|
|
||||||
if isCaskAdded
|
|
||||||
{
|
|
||||||
return BrewTap(name: "homebrew/cask")
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppConstants.logger.warning("homebrew/cask is not added and not in local taps")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppConstants.logger.info("Found homebrew/cask in local taps")
|
|
||||||
}
|
|
||||||
|
|
||||||
var nonLocalBasicTapsInternal: [BrewTap] = .init()
|
|
||||||
|
|
||||||
for await tap in taskGroup
|
|
||||||
{
|
|
||||||
if let tap = tap
|
|
||||||
{
|
|
||||||
nonLocalBasicTapsInternal.append(tap)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nonLocalBasicTapsInternal
|
|
||||||
}
|
|
||||||
|
|
||||||
finalAvailableTaps.append(contentsOf: nonLocalBasicTaps)
|
|
||||||
|
|
||||||
return finalAvailableTaps
|
|
||||||
}
|
|
||||||
|
|
||||||
private func checkIfTapIsAdded(tapToCheck: String) async -> Bool
|
|
||||||
{
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue