mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-09-21 02:51:04 +02:00
Clover.app, improved search update method
This commit is contained in:
parent
5cfce7bc7a
commit
d31580fd35
@ -27,7 +27,6 @@
|
||||
956090B7238C890600ACD7F7 /* Installer.xib in Resources */ = {isa = PBXBuildFile; fileRef = 956090B9238C890600ACD7F7 /* Installer.xib */; };
|
||||
9569EC42238DD772003AD72C /* Settings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9569EC44238DD772003AD72C /* Settings.xib */; };
|
||||
958861DA235F75FB00B64173 /* Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 958861D9235F75FB00B64173 /* Driver.swift */; };
|
||||
95ACABCA236B7463008F80A4 /* Unzip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95ACABC9236B7463008F80A4 /* Unzip.swift */; };
|
||||
95C515222369BAF500E4A3A8 /* NVRAM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C515212369BAF500E4A3A8 /* NVRAM.swift */; };
|
||||
95C5152F236A0A7400E4A3A8 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C5152E236A0A7400E4A3A8 /* SettingsView.swift */; };
|
||||
95C51536236B1F7700E4A3A8 /* RunAtLogin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C51535236B1F7700E4A3A8 /* RunAtLogin.swift */; };
|
||||
@ -321,7 +320,6 @@
|
||||
9569EC90238DD7CA003AD72C /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Settings.strings; sourceTree = "<group>"; };
|
||||
958505B4236594C000BCB4A3 /* Cloverhelper.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Cloverhelper.xcodeproj; path = cloverhelper/Cloverhelper.xcodeproj; sourceTree = "<group>"; };
|
||||
958861D9235F75FB00B64173 /* Driver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Driver.swift; sourceTree = "<group>"; };
|
||||
95ACABC9236B7463008F80A4 /* Unzip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Unzip.swift; sourceTree = "<group>"; };
|
||||
95C515212369BAF500E4A3A8 /* NVRAM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NVRAM.swift; sourceTree = "<group>"; };
|
||||
95C5152E236A0A7400E4A3A8 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
|
||||
95C51535236B1F7700E4A3A8 /* RunAtLogin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunAtLogin.swift; sourceTree = "<group>"; };
|
||||
@ -450,7 +448,6 @@
|
||||
95E68ADA235B86A0002B37A5 /* Releases.swift */,
|
||||
95E68ADC235B86A1002B37A5 /* Shared.swift */,
|
||||
95C515212369BAF500E4A3A8 /* NVRAM.swift */,
|
||||
95ACABC9236B7463008F80A4 /* Unzip.swift */,
|
||||
95E50075238ABA56002F3869 /* Tasks.swift */,
|
||||
953BC20223720C0A0039755D /* FixedWidthViews.swift */,
|
||||
9533718223709517003F1AF4 /* bootsectors-install */,
|
||||
@ -727,7 +724,6 @@
|
||||
958861DA235F75FB00B64173 /* Driver.swift in Sources */,
|
||||
95E68AE3235B86A1002B37A5 /* bdmesg.swift in Sources */,
|
||||
95C5152F236A0A7400E4A3A8 /* SettingsView.swift in Sources */,
|
||||
95ACABCA236B7463008F80A4 /* Unzip.swift in Sources */,
|
||||
9555AF28238EFDAD00108C33 /* DriversCollection.swift in Sources */,
|
||||
953BC20323720C0A0039755D /* FixedWidthViews.swift in Sources */,
|
||||
95E50076238ABA56002F3869 /* Tasks.swift in Sources */,
|
||||
|
@ -611,7 +611,6 @@ class SettingsViewController: NSViewController, NSTextFieldDelegate, URLSessionD
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Time interval is what user defines less time elapsed
|
||||
if ti > 0 {
|
||||
let lastCheckDate : Date = (UDs.object(forKey: kLastSearchUpdateDateKey) as? Date) ?? Date()
|
||||
@ -643,7 +642,9 @@ class SettingsViewController: NSViewController, NSTextFieldDelegate, URLSessionD
|
||||
self.lastReleaseRev = bootvers
|
||||
let currRevNum : Int = Int(self.currentRev) ?? 0
|
||||
let lastRevNum : Int = Int(self.lastReleaseRev ?? "0") ?? 0
|
||||
|
||||
let installerRev = findCloverRevision(at: Bundle.main.sharedSupportPath!.addPath("CloverV2/EFI"))
|
||||
let installerRevNum = Int(installerRev ?? "0") ?? 0
|
||||
|
||||
if (self.lastReleaseLink != nil && self.lastReleaseRev != nil)
|
||||
&& lastRevNum > 0
|
||||
&& (lastRevNum > currRevNum) {
|
||||
@ -656,9 +657,13 @@ class SettingsViewController: NSViewController, NSTextFieldDelegate, URLSessionD
|
||||
} else {
|
||||
AppSD.statusItem.title = "\(lastRevNum)"
|
||||
}
|
||||
|
||||
self.updateCloverButton.isEnabled = true
|
||||
self.updateCloverButton.title = String(format: "Update to r%d".locale, lastRevNum)
|
||||
if installerRevNum > lastRevNum {
|
||||
self.updateCloverButton.isEnabled = true
|
||||
self.updateCloverButton.title = String(format: "Update to r%d".locale, lastRevNum)
|
||||
} else {
|
||||
self.updateCloverButton.isEnabled = false
|
||||
self.updateCloverButton.title = kNotAvailable.locale
|
||||
}
|
||||
}
|
||||
} else {
|
||||
DispatchQueue.main.async {
|
||||
@ -768,7 +773,7 @@ class SettingsViewController: NSViewController, NSTextFieldDelegate, URLSessionD
|
||||
|
||||
if lastPath.fileExtension == "zip" && lastPath.hasPrefix("CloverV2") {
|
||||
// ok, We have the download completed: replace CloverV2 inside SharedSupport directory!
|
||||
|
||||
|
||||
// Decompress the zip archive
|
||||
// NSUserName() ensure the user have read write permissions
|
||||
let tempDir = "/tmp/CloverXXXXX\(NSUserName())Update"
|
||||
@ -782,10 +787,27 @@ class SettingsViewController: NSViewController, NSTextFieldDelegate, URLSessionD
|
||||
|
||||
let file = tempDir.addPath(lastPath)
|
||||
try data.write(to: URL(fileURLWithPath: file))
|
||||
unzip(file: file, destination: tempDir) { (success) in
|
||||
if success {
|
||||
self.replaceCloverV2(with: tempDir.addPath("CloverV2"))
|
||||
|
||||
DispatchQueue.main.async {
|
||||
let task : Process = Process()
|
||||
task.environment = ProcessInfo().environment
|
||||
let bash = "/bin/bash"
|
||||
// unzip -d output_dir/ zipfiles.zip
|
||||
let cmd = "/usr/bin/unzip -qq -d \(tempDir) \(file)"
|
||||
if #available(OSX 10.13, *) {
|
||||
task.executableURL = URL(fileURLWithPath: bash)
|
||||
} else {
|
||||
task.launchPath = bash
|
||||
}
|
||||
|
||||
task.arguments = ["-c", cmd]
|
||||
task.terminationHandler = { t in
|
||||
if t.terminationStatus == 0 {
|
||||
self.replaceCloverV2(with: tempDir.addPath("CloverV2"))
|
||||
}
|
||||
}
|
||||
|
||||
task.launch()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,32 +0,0 @@
|
||||
//
|
||||
// Unzip.swift
|
||||
// Clover
|
||||
//
|
||||
// Created by vector sigma on 31/10/2019.
|
||||
// Copyright © 2019 CloverHackyColor. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
func unzip(file: String,
|
||||
destination: String,
|
||||
success: @escaping (Bool) -> Void) {
|
||||
let task : Process = Process()
|
||||
if #available(OSX 10.13, *) {
|
||||
task.executableURL = URL(fileURLWithPath: "/usr/bin/unzip")
|
||||
} else {
|
||||
task.launchPath = "/usr/bin/unzip"
|
||||
}
|
||||
// unzip -d output_dir/ zipfiles.zip
|
||||
task.arguments = ["-d", "\(destination)/", file]
|
||||
|
||||
let pipe: Pipe = Pipe()
|
||||
task.standardOutput = pipe
|
||||
task.standardError = pipe
|
||||
|
||||
task.terminationHandler = { task in
|
||||
success((task.terminationStatus == 0))
|
||||
}
|
||||
|
||||
task.launch()
|
||||
}
|
Loading…
Reference in New Issue
Block a user