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 availableCasks = await loadUpPackages(whatToLoad: .cask, appState: appState)
|
||||
|
||||
async let availableTaps = await loadUpTappedTaps()
|
||||
|
||||
brewData.installedFormulae = await availableFormulae
|
||||
brewData.installedCasks = await availableCasks
|
||||
|
||||
tapData.addedTaps = await availableTaps
|
||||
await tapData.loadAddedTaps()
|
||||
|
||||
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