Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/ContainerBuild/BuildPipelineHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -105,7 +105,7 @@ public actor BuildPipeline {
throw NSError(
domain: "untilFirstError",
code: 1,
userInfo: [NSLocalizedDescriptionKey: "Failed to initialize task continuation"])
userInfo: [NSLocalizedDescriptionKey: "failed to initialize task continuation"])
}
defer { taskContinuation.finish() }
let stream = AsyncStream<Error> { continuation in
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerBuild/URL+Extensions.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -228,7 +228,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Reset not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "reset not supported with InputStream-based implementation"
])
}

Expand All@@ -240,7 +240,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Offset tracking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "offset tracking not supported with InputStream-based implementation"
])
}

Expand All@@ -252,7 +252,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Seeking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "seeking not supported with InputStream-based implementation"
])
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientDiskUsage.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,7 +31,7 @@ public struct ClientDiskUsage {
guard let responseData = reply.dataNoCopy(key: .diskUsageStats) else {
throw ContainerizationError(
.internalError,
message: "Invalid response from server: missing disk usage data"
message: "invalid response from server: missing disk usage data"
)
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerClient/Core/ClientKernel.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ extension ClientKernel {
throw err
}
throw ContainerizationError(
.notFound, message: "Default kernel not configured for architecture \(platform.architecture). Please use the `container system kernel set` command to configure it")
.notFound, message: "default kernel not configured for architecture \(platform.architecture), please use the `container system kernel set` command to configure it")
}
}
}
Expand All@@ -97,7 +97,7 @@ extension SystemPlatform {
case "amd64":
return .linuxAmd
default:
fatalError("Unknown architecture")
fatalError("unknown architecture")
}
}
}
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientVolume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ public struct ClientVolume {
let reply = try await client.send(message)

guard let responseData = reply.dataNoCopy(key: .volume) else {
throw VolumeError.storageError("Invalid response from server")
throw VolumeError.storageError("invalid response from server")
}

return try JSONDecoder().decode(Volume.self, from: responseData)
Expand Down
12 changes: 6 additions & 6 deletions Sources/ContainerClient/Core/Volume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,17 +80,17 @@ public enum VolumeError: Error, LocalizedError {
public var errorDescription: String? {
switch self {
case .volumeNotFound(let name):
return "Volume '\(name)' not found"
return "volume '\(name)' not found"
case .volumeAlreadyExists(let name):
return "Volume '\(name)' already exists"
return "volume '\(name)' already exists"
case .volumeInUse(let name):
return "Volume '\(name)' is currently in use and cannot be accessed by another container, or deleted."
return "volume '\(name)' is currently in use and cannot be accessed by another container, or deleted"
case .invalidVolumeName(let name):
return "Invalid volume name '\(name)'"
return "invalid volume name '\(name)'"
case .driverNotSupported(let driver):
return "Volume driver '\(driver)' is not supported"
return "volume driver '\(driver)' is not supported"
case .storageError(let message):
return "Storage error: \(message)"
return "storage error: \(message)"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Parser.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -262,7 +262,7 @@ public struct Parser {
}()

guard let commandToRun = processArguments, commandToRun.count > 0 else {
throw ContainerizationError(.invalidArgument, message: "Command/Entrypoint not specified for container process")
throw ContainerizationError(.invalidArgument, message: "command/entrypoint not specified for container process")
}

let defaultUser: ProcessConfiguration.User = {
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/Container/ContainerStats.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -74,7 +74,7 @@ extension Application {
guard let container = allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
found.append(container)
Expand DownExpand Up@@ -102,7 +102,7 @@ extension Application {
guard allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) != nil else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
}
Expand DownExpand Up@@ -140,7 +140,7 @@ extension Application {
}
} catch {
clearScreen()
print("Error collecting stats: \(error)")
print("error collecting stats: \(error)")
try await Task.sleep(for: .seconds(2))
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerCommands/DefaultCommand.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,9 +42,9 @@ struct DefaultCommand: AsyncParsableCommand {

// Check for edge cases and unknown options to match the behavior in the absence of plugins.
if command.isEmpty {
throw ValidationError("Unknown argument '\(command)'")
throw ValidationError("unknown argument '\(command)'")
} else if command.starts(with: "-") {
throw ValidationError("Unknown option '\(command)'")
throw ValidationError("unknown option '\(command)'")
}

// Compute canonical plugin directories to show in helpful errors (avoid hard-coded paths)
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/System/Kernel/KernelSet.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -67,7 +67,7 @@ extension Application {

private func setKernelFromBinary() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
let absolutePath = URL(fileURLWithPath: binaryPath, relativeTo: .currentDirectory()).absoluteURL.absoluteString
let platform = try getSystemPlatform()
Expand All@@ -76,10 +76,10 @@ extension Application {

private func setKernelFromTar() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
guard let tarPath else {
throw ArgumentParser.ValidationError("Missing argument '--tar")
throw ArgumentParser.ValidationError("missing argument '--tar")
}
let platform = try getSystemPlatform()
let localTarPath = URL(fileURLWithPath: tarPath, relativeTo: .currentDirectory()).path
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerCommands/System/SystemDF.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ extension Application {
guard let jsonString = String(data: data, encoding: .utf8) else {
throw ContainerizationError(
.internalError,
message: "Failed to encode JSON output"
message: "failed to encode JSON output"
)
}
print(jsonString)
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerPersistence/DefaultsStore.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public enum DefaultsStore {

private static var udSuite: UserDefaults {
guard let ud = UserDefaults.init(suiteName: self.userDefaultDomain) else {
fatalError("Failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
fatalError("failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
}
return ud
}
Expand Down
8 changes: 4 additions & 4 deletions Sources/ContainerPlugin/PluginLoader.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,7 +133,7 @@ extension PluginLoader {
}.first)
else {
log?.warning(
"Not installing plugin with missing configuration",
"not installing plugin with missing configuration",
metadata: [
"path": "\(installURL.path)"
]
Expand All@@ -144,7 +144,7 @@ extension PluginLoader {
// Warn and skip if this plugin name has been encountered already
guard !pluginNames.contains(plugin.name) else {
log?.warning(
"Not installing shadowed plugin",
"not installing shadowed plugin",
metadata: [
"path": "\(installURL.path)",
"name": "\(plugin.name)",
Expand All@@ -157,7 +157,7 @@ extension PluginLoader {
pluginNames.insert(plugin.name)
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"path": "\(installURL.path)",
"error": "\(error)",
Expand All@@ -183,7 +183,7 @@ extension PluginLoader {
}
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"name": "\(name)",
"error": "\(error)",
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerPlugin/ServiceManager.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -72,12 +72,12 @@ public struct ServiceManager {
let status = launchctl.terminationStatus
guard status == 0 else {
throw ContainerizationError(
.internalError, message: "command `launchctl list` failed with status \(status). Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "command `launchctl list` failed with status \(status), message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

guard let outputText = String(data: outputData, encoding: .utf8) else {
throw ContainerizationError(
.internalError, message: "could not decode output of command `launchctl list`. Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "could not decode output of command `launchctl list`, message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

// The third field of each line of launchctl list output is the label
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerVersion/CommandLine+Executable.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ extension CommandLine {
/// Create the buffer and get the path
buffer = [CChar](repeating: 0, count: Int(bufferSize))
guard _NSGetExecutablePath(&buffer, &bufferSize) == 0 else {
fatalError("UNEXPECTED: failed to get executable path")
fatalError("unexpected: failed to get executable path")
}

/// Return the path with the executable file component removed the last component and
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerXPC/XPCServer.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -239,12 +239,12 @@ extension xpc_object_t {
}

var connectionError: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID) || xpc_equal(self, XPC_ERROR_CONNECTION_INTERRUPTED)
}

var connectionClosed: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID)
}

Expand All@@ -253,7 +253,7 @@ extension xpc_object_t {
}

var errorDescription: String? {
precondition(isError, "Not an error")
precondition(isError, "not an error")
let cstring = xpc_dictionary_get_string(self, XPC_ERROR_KEY_DESCRIPTION)
guard let cstring else {
return nil
Expand Down
4 changes: 2 additions & 2 deletions Sources/Helpers/APIServer/ContainerDNSHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -97,12 +97,12 @@ struct ContainerDNSHandler: DNSHandler {

let components = ipAllocation.address.split(separator: "/")
guard !components.isEmpty else {
throw DNSResolverError.serverError("Invalid IP format: empty address")
throw DNSResolverError.serverError("invalid IP format: empty address")
}

let ipString = String(components[0])
guard let ip = IPv4(ipString) else {
throw DNSResolverError.serverError("Failed to parse IP address: \(ipString)")
throw DNSResolverError.serverError("failed to parse IP address: \(ipString)")
}

return HostRecord<IPv4>(name: question.name, ttl: ttl, ip: ip)
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -191,7 +191,7 @@ public actor VolumesService {
let sizeInBytes = UInt64(bytes)

guard sizeInBytes >= minSize else {
throw VolumeError.storageError("Volume size too small: minimum 1MiB")
throw VolumeError.storageError("volume size too small: minimum 1MiB")
}

return sizeInBytes
Expand DownExpand Up@@ -244,7 +244,7 @@ public actor VolumesService {
labels: [String: String]
) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume already exists by trying to list and finding it
Expand DownExpand Up@@ -283,7 +283,7 @@ public actor VolumesService {

private func _delete(name: String) async throws {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume exists by trying to list and finding it
Expand DownExpand Up@@ -311,7 +311,7 @@ public actor VolumesService {

private func _inspect(_ name: String) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

let volumes = try await store.list()
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -231,7 +231,7 @@ extension ImagesService {
throw err
}
guard authentication != nil else {
throw ContainerizationError(.internalError, message: "\(String(describing: err)). No credentials found for host \(host)")
throw ContainerizationError(.internalError, message: "\(String(describing: err)), no credentials found for host \(host)")
}
throw err
}
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public actor SnapshotStore {
throw ContainerizationError(.internalError, message: "missing platform for descriptor \(desc.digest)")
}
guard let unpacker = try await self.unpackStrategy(image, platform) else {
self.log?.warning("Skipping unpack for \(image.reference) for platform \(platform.description). No unpacker configured.")
self.log?.warning("no unpacker configured, skipping unpack for \(image.reference) for platform \(platform.description)")
continue
}
let currentSubTask = await taskManager.startTask()
Expand Down
2 changes: 1 addition & 1 deletion Sources/TerminalProgress/ProgressConfig.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -163,7 +163,7 @@ extension ProgressConfig {
public var description: String {
switch self {
case .invalid(let reason):
return "Failed to validate config (\(reason))"
return "failed to validate config (\(reason))"
}
}
}
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Lowercase error messages by dkovba · Pull Request #945 · apple/container · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/ContainerBuild/BuildPipelineHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -105,7 +105,7 @@ public actor BuildPipeline {
throw NSError(
domain: "untilFirstError",
code: 1,
userInfo: [NSLocalizedDescriptionKey: "Failed to initialize task continuation"])
userInfo: [NSLocalizedDescriptionKey: "failed to initialize task continuation"])
}
defer { taskContinuation.finish() }
let stream = AsyncStream<Error> { continuation in
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerBuild/URL+Extensions.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -228,7 +228,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Reset not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "reset not supported with InputStream-based implementation"
])
}

Expand All@@ -240,7 +240,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Offset tracking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "offset tracking not supported with InputStream-based implementation"
])
}

Expand All@@ -252,7 +252,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Seeking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "seeking not supported with InputStream-based implementation"
])
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientDiskUsage.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,7 +31,7 @@ public struct ClientDiskUsage {
guard let responseData = reply.dataNoCopy(key: .diskUsageStats) else {
throw ContainerizationError(
.internalError,
message: "Invalid response from server: missing disk usage data"
message: "invalid response from server: missing disk usage data"
)
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerClient/Core/ClientKernel.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ extension ClientKernel {
throw err
}
throw ContainerizationError(
.notFound, message: "Default kernel not configured for architecture \(platform.architecture). Please use the `container system kernel set` command to configure it")
.notFound, message: "default kernel not configured for architecture \(platform.architecture), please use the `container system kernel set` command to configure it")
}
}
}
Expand All@@ -97,7 +97,7 @@ extension SystemPlatform {
case "amd64":
return .linuxAmd
default:
fatalError("Unknown architecture")
fatalError("unknown architecture")
}
}
}
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientVolume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ public struct ClientVolume {
let reply = try await client.send(message)

guard let responseData = reply.dataNoCopy(key: .volume) else {
throw VolumeError.storageError("Invalid response from server")
throw VolumeError.storageError("invalid response from server")
}

return try JSONDecoder().decode(Volume.self, from: responseData)
Expand Down
12 changes: 6 additions & 6 deletions Sources/ContainerClient/Core/Volume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,17 +80,17 @@ public enum VolumeError: Error, LocalizedError {
public var errorDescription: String? {
switch self {
case .volumeNotFound(let name):
return "Volume '\(name)' not found"
return "volume '\(name)' not found"
case .volumeAlreadyExists(let name):
return "Volume '\(name)' already exists"
return "volume '\(name)' already exists"
case .volumeInUse(let name):
return "Volume '\(name)' is currently in use and cannot be accessed by another container, or deleted."
return "volume '\(name)' is currently in use and cannot be accessed by another container, or deleted"
case .invalidVolumeName(let name):
return "Invalid volume name '\(name)'"
return "invalid volume name '\(name)'"
case .driverNotSupported(let driver):
return "Volume driver '\(driver)' is not supported"
return "volume driver '\(driver)' is not supported"
case .storageError(let message):
return "Storage error: \(message)"
return "storage error: \(message)"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Parser.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -262,7 +262,7 @@ public struct Parser {
}()

guard let commandToRun = processArguments, commandToRun.count > 0 else {
throw ContainerizationError(.invalidArgument, message: "Command/Entrypoint not specified for container process")
throw ContainerizationError(.invalidArgument, message: "command/entrypoint not specified for container process")
}

let defaultUser: ProcessConfiguration.User = {
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/Container/ContainerStats.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -74,7 +74,7 @@ extension Application {
guard let container = allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
found.append(container)
Expand DownExpand Up@@ -102,7 +102,7 @@ extension Application {
guard allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) != nil else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
}
Expand DownExpand Up@@ -140,7 +140,7 @@ extension Application {
}
} catch {
clearScreen()
print("Error collecting stats: \(error)")
print("error collecting stats: \(error)")
try await Task.sleep(for: .seconds(2))
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerCommands/DefaultCommand.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,9 +42,9 @@ struct DefaultCommand: AsyncParsableCommand {

// Check for edge cases and unknown options to match the behavior in the absence of plugins.
if command.isEmpty {
throw ValidationError("Unknown argument '\(command)'")
throw ValidationError("unknown argument '\(command)'")
} else if command.starts(with: "-") {
throw ValidationError("Unknown option '\(command)'")
throw ValidationError("unknown option '\(command)'")
}

// Compute canonical plugin directories to show in helpful errors (avoid hard-coded paths)
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/System/Kernel/KernelSet.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -67,7 +67,7 @@ extension Application {

private func setKernelFromBinary() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
let absolutePath = URL(fileURLWithPath: binaryPath, relativeTo: .currentDirectory()).absoluteURL.absoluteString
let platform = try getSystemPlatform()
Expand All@@ -76,10 +76,10 @@ extension Application {

private func setKernelFromTar() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
guard let tarPath else {
throw ArgumentParser.ValidationError("Missing argument '--tar")
throw ArgumentParser.ValidationError("missing argument '--tar")
}
let platform = try getSystemPlatform()
let localTarPath = URL(fileURLWithPath: tarPath, relativeTo: .currentDirectory()).path
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerCommands/System/SystemDF.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ extension Application {
guard let jsonString = String(data: data, encoding: .utf8) else {
throw ContainerizationError(
.internalError,
message: "Failed to encode JSON output"
message: "failed to encode JSON output"
)
}
print(jsonString)
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerPersistence/DefaultsStore.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public enum DefaultsStore {

private static var udSuite: UserDefaults {
guard let ud = UserDefaults.init(suiteName: self.userDefaultDomain) else {
fatalError("Failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
fatalError("failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
}
return ud
}
Expand Down
8 changes: 4 additions & 4 deletions Sources/ContainerPlugin/PluginLoader.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,7 +133,7 @@ extension PluginLoader {
}.first)
else {
log?.warning(
"Not installing plugin with missing configuration",
"not installing plugin with missing configuration",
metadata: [
"path": "\(installURL.path)"
]
Expand All@@ -144,7 +144,7 @@ extension PluginLoader {
// Warn and skip if this plugin name has been encountered already
guard !pluginNames.contains(plugin.name) else {
log?.warning(
"Not installing shadowed plugin",
"not installing shadowed plugin",
metadata: [
"path": "\(installURL.path)",
"name": "\(plugin.name)",
Expand All@@ -157,7 +157,7 @@ extension PluginLoader {
pluginNames.insert(plugin.name)
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"path": "\(installURL.path)",
"error": "\(error)",
Expand All@@ -183,7 +183,7 @@ extension PluginLoader {
}
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"name": "\(name)",
"error": "\(error)",
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerPlugin/ServiceManager.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -72,12 +72,12 @@ public struct ServiceManager {
let status = launchctl.terminationStatus
guard status == 0 else {
throw ContainerizationError(
.internalError, message: "command `launchctl list` failed with status \(status). Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "command `launchctl list` failed with status \(status), message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

guard let outputText = String(data: outputData, encoding: .utf8) else {
throw ContainerizationError(
.internalError, message: "could not decode output of command `launchctl list`. Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "could not decode output of command `launchctl list`, message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

// The third field of each line of launchctl list output is the label
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerVersion/CommandLine+Executable.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ extension CommandLine {
/// Create the buffer and get the path
buffer = [CChar](repeating: 0, count: Int(bufferSize))
guard _NSGetExecutablePath(&buffer, &bufferSize) == 0 else {
fatalError("UNEXPECTED: failed to get executable path")
fatalError("unexpected: failed to get executable path")
}

/// Return the path with the executable file component removed the last component and
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerXPC/XPCServer.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -239,12 +239,12 @@ extension xpc_object_t {
}

var connectionError: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID) || xpc_equal(self, XPC_ERROR_CONNECTION_INTERRUPTED)
}

var connectionClosed: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID)
}

Expand All@@ -253,7 +253,7 @@ extension xpc_object_t {
}

var errorDescription: String? {
precondition(isError, "Not an error")
precondition(isError, "not an error")
let cstring = xpc_dictionary_get_string(self, XPC_ERROR_KEY_DESCRIPTION)
guard let cstring else {
return nil
Expand Down
4 changes: 2 additions & 2 deletions Sources/Helpers/APIServer/ContainerDNSHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -97,12 +97,12 @@ struct ContainerDNSHandler: DNSHandler {

let components = ipAllocation.address.split(separator: "/")
guard !components.isEmpty else {
throw DNSResolverError.serverError("Invalid IP format: empty address")
throw DNSResolverError.serverError("invalid IP format: empty address")
}

let ipString = String(components[0])
guard let ip = IPv4(ipString) else {
throw DNSResolverError.serverError("Failed to parse IP address: \(ipString)")
throw DNSResolverError.serverError("failed to parse IP address: \(ipString)")
}

return HostRecord<IPv4>(name: question.name, ttl: ttl, ip: ip)
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -191,7 +191,7 @@ public actor VolumesService {
let sizeInBytes = UInt64(bytes)

guard sizeInBytes >= minSize else {
throw VolumeError.storageError("Volume size too small: minimum 1MiB")
throw VolumeError.storageError("volume size too small: minimum 1MiB")
}

return sizeInBytes
Expand DownExpand Up@@ -244,7 +244,7 @@ public actor VolumesService {
labels: [String: String]
) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume already exists by trying to list and finding it
Expand DownExpand Up@@ -283,7 +283,7 @@ public actor VolumesService {

private func _delete(name: String) async throws {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume exists by trying to list and finding it
Expand DownExpand Up@@ -311,7 +311,7 @@ public actor VolumesService {

private func _inspect(_ name: String) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

let volumes = try await store.list()
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -231,7 +231,7 @@ extension ImagesService {
throw err
}
guard authentication != nil else {
throw ContainerizationError(.internalError, message: "\(String(describing: err)). No credentials found for host \(host)")
throw ContainerizationError(.internalError, message: "\(String(describing: err)), no credentials found for host \(host)")
}
throw err
}
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public actor SnapshotStore {
throw ContainerizationError(.internalError, message: "missing platform for descriptor \(desc.digest)")
}
guard let unpacker = try await self.unpackStrategy(image, platform) else {
self.log?.warning("Skipping unpack for \(image.reference) for platform \(platform.description). No unpacker configured.")
self.log?.warning("no unpacker configured, skipping unpack for \(image.reference) for platform \(platform.description)")
continue
}
let currentSubTask = await taskManager.startTask()
Expand Down
2 changes: 1 addition & 1 deletion Sources/TerminalProgress/ProgressConfig.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -163,7 +163,7 @@ extension ProgressConfig {
public var description: String {
switch self {
case .invalid(let reason):
return "Failed to validate config (\(reason))"
return "failed to validate config (\(reason))"
}
}
}
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Lowercase error messages by dkovba · Pull Request #945 · apple/container · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/ContainerBuild/BuildPipelineHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -105,7 +105,7 @@ public actor BuildPipeline {
throw NSError(
domain: "untilFirstError",
code: 1,
userInfo: [NSLocalizedDescriptionKey: "Failed to initialize task continuation"])
userInfo: [NSLocalizedDescriptionKey: "failed to initialize task continuation"])
}
defer { taskContinuation.finish() }
let stream = AsyncStream<Error> { continuation in
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerBuild/URL+Extensions.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -228,7 +228,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Reset not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "reset not supported with InputStream-based implementation"
])
}

Expand All@@ -240,7 +240,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Offset tracking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "offset tracking not supported with InputStream-based implementation"
])
}

Expand All@@ -252,7 +252,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Seeking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "seeking not supported with InputStream-based implementation"
])
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientDiskUsage.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,7 +31,7 @@ public struct ClientDiskUsage {
guard let responseData = reply.dataNoCopy(key: .diskUsageStats) else {
throw ContainerizationError(
.internalError,
message: "Invalid response from server: missing disk usage data"
message: "invalid response from server: missing disk usage data"
)
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerClient/Core/ClientKernel.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ extension ClientKernel {
throw err
}
throw ContainerizationError(
.notFound, message: "Default kernel not configured for architecture \(platform.architecture). Please use the `container system kernel set` command to configure it")
.notFound, message: "default kernel not configured for architecture \(platform.architecture), please use the `container system kernel set` command to configure it")
}
}
}
Expand All@@ -97,7 +97,7 @@ extension SystemPlatform {
case "amd64":
return .linuxAmd
default:
fatalError("Unknown architecture")
fatalError("unknown architecture")
}
}
}
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientVolume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ public struct ClientVolume {
let reply = try await client.send(message)

guard let responseData = reply.dataNoCopy(key: .volume) else {
throw VolumeError.storageError("Invalid response from server")
throw VolumeError.storageError("invalid response from server")
}

return try JSONDecoder().decode(Volume.self, from: responseData)
Expand Down
12 changes: 6 additions & 6 deletions Sources/ContainerClient/Core/Volume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,17 +80,17 @@ public enum VolumeError: Error, LocalizedError {
public var errorDescription: String? {
switch self {
case .volumeNotFound(let name):
return "Volume '\(name)' not found"
return "volume '\(name)' not found"
case .volumeAlreadyExists(let name):
return "Volume '\(name)' already exists"
return "volume '\(name)' already exists"
case .volumeInUse(let name):
return "Volume '\(name)' is currently in use and cannot be accessed by another container, or deleted."
return "volume '\(name)' is currently in use and cannot be accessed by another container, or deleted"
case .invalidVolumeName(let name):
return "Invalid volume name '\(name)'"
return "invalid volume name '\(name)'"
case .driverNotSupported(let driver):
return "Volume driver '\(driver)' is not supported"
return "volume driver '\(driver)' is not supported"
case .storageError(let message):
return "Storage error: \(message)"
return "storage error: \(message)"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Parser.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -262,7 +262,7 @@ public struct Parser {
}()

guard let commandToRun = processArguments, commandToRun.count > 0 else {
throw ContainerizationError(.invalidArgument, message: "Command/Entrypoint not specified for container process")
throw ContainerizationError(.invalidArgument, message: "command/entrypoint not specified for container process")
}

let defaultUser: ProcessConfiguration.User = {
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/Container/ContainerStats.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -74,7 +74,7 @@ extension Application {
guard let container = allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
found.append(container)
Expand DownExpand Up@@ -102,7 +102,7 @@ extension Application {
guard allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) != nil else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
}
Expand DownExpand Up@@ -140,7 +140,7 @@ extension Application {
}
} catch {
clearScreen()
print("Error collecting stats: \(error)")
print("error collecting stats: \(error)")
try await Task.sleep(for: .seconds(2))
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerCommands/DefaultCommand.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,9 +42,9 @@ struct DefaultCommand: AsyncParsableCommand {

// Check for edge cases and unknown options to match the behavior in the absence of plugins.
if command.isEmpty {
throw ValidationError("Unknown argument '\(command)'")
throw ValidationError("unknown argument '\(command)'")
} else if command.starts(with: "-") {
throw ValidationError("Unknown option '\(command)'")
throw ValidationError("unknown option '\(command)'")
}

// Compute canonical plugin directories to show in helpful errors (avoid hard-coded paths)
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/System/Kernel/KernelSet.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -67,7 +67,7 @@ extension Application {

private func setKernelFromBinary() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
let absolutePath = URL(fileURLWithPath: binaryPath, relativeTo: .currentDirectory()).absoluteURL.absoluteString
let platform = try getSystemPlatform()
Expand All@@ -76,10 +76,10 @@ extension Application {

private func setKernelFromTar() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
guard let tarPath else {
throw ArgumentParser.ValidationError("Missing argument '--tar")
throw ArgumentParser.ValidationError("missing argument '--tar")
}
let platform = try getSystemPlatform()
let localTarPath = URL(fileURLWithPath: tarPath, relativeTo: .currentDirectory()).path
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerCommands/System/SystemDF.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ extension Application {
guard let jsonString = String(data: data, encoding: .utf8) else {
throw ContainerizationError(
.internalError,
message: "Failed to encode JSON output"
message: "failed to encode JSON output"
)
}
print(jsonString)
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerPersistence/DefaultsStore.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public enum DefaultsStore {

private static var udSuite: UserDefaults {
guard let ud = UserDefaults.init(suiteName: self.userDefaultDomain) else {
fatalError("Failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
fatalError("failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
}
return ud
}
Expand Down
8 changes: 4 additions & 4 deletions Sources/ContainerPlugin/PluginLoader.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,7 +133,7 @@ extension PluginLoader {
}.first)
else {
log?.warning(
"Not installing plugin with missing configuration",
"not installing plugin with missing configuration",
metadata: [
"path": "\(installURL.path)"
]
Expand All@@ -144,7 +144,7 @@ extension PluginLoader {
// Warn and skip if this plugin name has been encountered already
guard !pluginNames.contains(plugin.name) else {
log?.warning(
"Not installing shadowed plugin",
"not installing shadowed plugin",
metadata: [
"path": "\(installURL.path)",
"name": "\(plugin.name)",
Expand All@@ -157,7 +157,7 @@ extension PluginLoader {
pluginNames.insert(plugin.name)
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"path": "\(installURL.path)",
"error": "\(error)",
Expand All@@ -183,7 +183,7 @@ extension PluginLoader {
}
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"name": "\(name)",
"error": "\(error)",
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerPlugin/ServiceManager.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -72,12 +72,12 @@ public struct ServiceManager {
let status = launchctl.terminationStatus
guard status == 0 else {
throw ContainerizationError(
.internalError, message: "command `launchctl list` failed with status \(status). Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "command `launchctl list` failed with status \(status), message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

guard let outputText = String(data: outputData, encoding: .utf8) else {
throw ContainerizationError(
.internalError, message: "could not decode output of command `launchctl list`. Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "could not decode output of command `launchctl list`, message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

// The third field of each line of launchctl list output is the label
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerVersion/CommandLine+Executable.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ extension CommandLine {
/// Create the buffer and get the path
buffer = [CChar](repeating: 0, count: Int(bufferSize))
guard _NSGetExecutablePath(&buffer, &bufferSize) == 0 else {
fatalError("UNEXPECTED: failed to get executable path")
fatalError("unexpected: failed to get executable path")
}

/// Return the path with the executable file component removed the last component and
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerXPC/XPCServer.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -239,12 +239,12 @@ extension xpc_object_t {
}

var connectionError: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID) || xpc_equal(self, XPC_ERROR_CONNECTION_INTERRUPTED)
}

var connectionClosed: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID)
}

Expand All@@ -253,7 +253,7 @@ extension xpc_object_t {
}

var errorDescription: String? {
precondition(isError, "Not an error")
precondition(isError, "not an error")
let cstring = xpc_dictionary_get_string(self, XPC_ERROR_KEY_DESCRIPTION)
guard let cstring else {
return nil
Expand Down
4 changes: 2 additions & 2 deletions Sources/Helpers/APIServer/ContainerDNSHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -97,12 +97,12 @@ struct ContainerDNSHandler: DNSHandler {

let components = ipAllocation.address.split(separator: "/")
guard !components.isEmpty else {
throw DNSResolverError.serverError("Invalid IP format: empty address")
throw DNSResolverError.serverError("invalid IP format: empty address")
}

let ipString = String(components[0])
guard let ip = IPv4(ipString) else {
throw DNSResolverError.serverError("Failed to parse IP address: \(ipString)")
throw DNSResolverError.serverError("failed to parse IP address: \(ipString)")
}

return HostRecord<IPv4>(name: question.name, ttl: ttl, ip: ip)
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -191,7 +191,7 @@ public actor VolumesService {
let sizeInBytes = UInt64(bytes)

guard sizeInBytes >= minSize else {
throw VolumeError.storageError("Volume size too small: minimum 1MiB")
throw VolumeError.storageError("volume size too small: minimum 1MiB")
}

return sizeInBytes
Expand DownExpand Up@@ -244,7 +244,7 @@ public actor VolumesService {
labels: [String: String]
) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume already exists by trying to list and finding it
Expand DownExpand Up@@ -283,7 +283,7 @@ public actor VolumesService {

private func _delete(name: String) async throws {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume exists by trying to list and finding it
Expand DownExpand Up@@ -311,7 +311,7 @@ public actor VolumesService {

private func _inspect(_ name: String) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

let volumes = try await store.list()
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -231,7 +231,7 @@ extension ImagesService {
throw err
}
guard authentication != nil else {
throw ContainerizationError(.internalError, message: "\(String(describing: err)). No credentials found for host \(host)")
throw ContainerizationError(.internalError, message: "\(String(describing: err)), no credentials found for host \(host)")
}
throw err
}
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public actor SnapshotStore {
throw ContainerizationError(.internalError, message: "missing platform for descriptor \(desc.digest)")
}
guard let unpacker = try await self.unpackStrategy(image, platform) else {
self.log?.warning("Skipping unpack for \(image.reference) for platform \(platform.description). No unpacker configured.")
self.log?.warning("no unpacker configured, skipping unpack for \(image.reference) for platform \(platform.description)")
continue
}
let currentSubTask = await taskManager.startTask()
Expand Down
2 changes: 1 addition & 1 deletion Sources/TerminalProgress/ProgressConfig.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -163,7 +163,7 @@ extension ProgressConfig {
public var description: String {
switch self {
case .invalid(let reason):
return "Failed to validate config (\(reason))"
return "failed to validate config (\(reason))"
}
}
}
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Lowercase error messages by dkovba · Pull Request #945 · apple/container · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/ContainerBuild/BuildPipelineHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -105,7 +105,7 @@ public actor BuildPipeline {
throw NSError(
domain: "untilFirstError",
code: 1,
userInfo: [NSLocalizedDescriptionKey: "Failed to initialize task continuation"])
userInfo: [NSLocalizedDescriptionKey: "failed to initialize task continuation"])
}
defer { taskContinuation.finish() }
let stream = AsyncStream<Error> { continuation in
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerBuild/URL+Extensions.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -228,7 +228,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Reset not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "reset not supported with InputStream-based implementation"
])
}

Expand All@@ -240,7 +240,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Offset tracking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "offset tracking not supported with InputStream-based implementation"
])
}

Expand All@@ -252,7 +252,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Seeking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "seeking not supported with InputStream-based implementation"
])
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientDiskUsage.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,7 +31,7 @@ public struct ClientDiskUsage {
guard let responseData = reply.dataNoCopy(key: .diskUsageStats) else {
throw ContainerizationError(
.internalError,
message: "Invalid response from server: missing disk usage data"
message: "invalid response from server: missing disk usage data"
)
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerClient/Core/ClientKernel.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ extension ClientKernel {
throw err
}
throw ContainerizationError(
.notFound, message: "Default kernel not configured for architecture \(platform.architecture). Please use the `container system kernel set` command to configure it")
.notFound, message: "default kernel not configured for architecture \(platform.architecture), please use the `container system kernel set` command to configure it")
}
}
}
Expand All@@ -97,7 +97,7 @@ extension SystemPlatform {
case "amd64":
return .linuxAmd
default:
fatalError("Unknown architecture")
fatalError("unknown architecture")
}
}
}
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientVolume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ public struct ClientVolume {
let reply = try await client.send(message)

guard let responseData = reply.dataNoCopy(key: .volume) else {
throw VolumeError.storageError("Invalid response from server")
throw VolumeError.storageError("invalid response from server")
}

return try JSONDecoder().decode(Volume.self, from: responseData)
Expand Down
12 changes: 6 additions & 6 deletions Sources/ContainerClient/Core/Volume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,17 +80,17 @@ public enum VolumeError: Error, LocalizedError {
public var errorDescription: String? {
switch self {
case .volumeNotFound(let name):
return "Volume '\(name)' not found"
return "volume '\(name)' not found"
case .volumeAlreadyExists(let name):
return "Volume '\(name)' already exists"
return "volume '\(name)' already exists"
case .volumeInUse(let name):
return "Volume '\(name)' is currently in use and cannot be accessed by another container, or deleted."
return "volume '\(name)' is currently in use and cannot be accessed by another container, or deleted"
case .invalidVolumeName(let name):
return "Invalid volume name '\(name)'"
return "invalid volume name '\(name)'"
case .driverNotSupported(let driver):
return "Volume driver '\(driver)' is not supported"
return "volume driver '\(driver)' is not supported"
case .storageError(let message):
return "Storage error: \(message)"
return "storage error: \(message)"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Parser.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -262,7 +262,7 @@ public struct Parser {
}()

guard let commandToRun = processArguments, commandToRun.count > 0 else {
throw ContainerizationError(.invalidArgument, message: "Command/Entrypoint not specified for container process")
throw ContainerizationError(.invalidArgument, message: "command/entrypoint not specified for container process")
}

let defaultUser: ProcessConfiguration.User = {
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/Container/ContainerStats.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -74,7 +74,7 @@ extension Application {
guard let container = allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
found.append(container)
Expand DownExpand Up@@ -102,7 +102,7 @@ extension Application {
guard allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) != nil else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
}
Expand DownExpand Up@@ -140,7 +140,7 @@ extension Application {
}
} catch {
clearScreen()
print("Error collecting stats: \(error)")
print("error collecting stats: \(error)")
try await Task.sleep(for: .seconds(2))
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerCommands/DefaultCommand.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,9 +42,9 @@ struct DefaultCommand: AsyncParsableCommand {

// Check for edge cases and unknown options to match the behavior in the absence of plugins.
if command.isEmpty {
throw ValidationError("Unknown argument '\(command)'")
throw ValidationError("unknown argument '\(command)'")
} else if command.starts(with: "-") {
throw ValidationError("Unknown option '\(command)'")
throw ValidationError("unknown option '\(command)'")
}

// Compute canonical plugin directories to show in helpful errors (avoid hard-coded paths)
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/System/Kernel/KernelSet.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -67,7 +67,7 @@ extension Application {

private func setKernelFromBinary() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
let absolutePath = URL(fileURLWithPath: binaryPath, relativeTo: .currentDirectory()).absoluteURL.absoluteString
let platform = try getSystemPlatform()
Expand All@@ -76,10 +76,10 @@ extension Application {

private func setKernelFromTar() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
guard let tarPath else {
throw ArgumentParser.ValidationError("Missing argument '--tar")
throw ArgumentParser.ValidationError("missing argument '--tar")
}
let platform = try getSystemPlatform()
let localTarPath = URL(fileURLWithPath: tarPath, relativeTo: .currentDirectory()).path
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerCommands/System/SystemDF.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ extension Application {
guard let jsonString = String(data: data, encoding: .utf8) else {
throw ContainerizationError(
.internalError,
message: "Failed to encode JSON output"
message: "failed to encode JSON output"
)
}
print(jsonString)
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerPersistence/DefaultsStore.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public enum DefaultsStore {

private static var udSuite: UserDefaults {
guard let ud = UserDefaults.init(suiteName: self.userDefaultDomain) else {
fatalError("Failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
fatalError("failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
}
return ud
}
Expand Down
8 changes: 4 additions & 4 deletions Sources/ContainerPlugin/PluginLoader.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,7 +133,7 @@ extension PluginLoader {
}.first)
else {
log?.warning(
"Not installing plugin with missing configuration",
"not installing plugin with missing configuration",
metadata: [
"path": "\(installURL.path)"
]
Expand All@@ -144,7 +144,7 @@ extension PluginLoader {
// Warn and skip if this plugin name has been encountered already
guard !pluginNames.contains(plugin.name) else {
log?.warning(
"Not installing shadowed plugin",
"not installing shadowed plugin",
metadata: [
"path": "\(installURL.path)",
"name": "\(plugin.name)",
Expand All@@ -157,7 +157,7 @@ extension PluginLoader {
pluginNames.insert(plugin.name)
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"path": "\(installURL.path)",
"error": "\(error)",
Expand All@@ -183,7 +183,7 @@ extension PluginLoader {
}
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"name": "\(name)",
"error": "\(error)",
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerPlugin/ServiceManager.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -72,12 +72,12 @@ public struct ServiceManager {
let status = launchctl.terminationStatus
guard status == 0 else {
throw ContainerizationError(
.internalError, message: "command `launchctl list` failed with status \(status). Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "command `launchctl list` failed with status \(status), message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

guard let outputText = String(data: outputData, encoding: .utf8) else {
throw ContainerizationError(
.internalError, message: "could not decode output of command `launchctl list`. Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "could not decode output of command `launchctl list`, message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

// The third field of each line of launchctl list output is the label
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerVersion/CommandLine+Executable.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ extension CommandLine {
/// Create the buffer and get the path
buffer = [CChar](repeating: 0, count: Int(bufferSize))
guard _NSGetExecutablePath(&buffer, &bufferSize) == 0 else {
fatalError("UNEXPECTED: failed to get executable path")
fatalError("unexpected: failed to get executable path")
}

/// Return the path with the executable file component removed the last component and
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerXPC/XPCServer.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -239,12 +239,12 @@ extension xpc_object_t {
}

var connectionError: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID) || xpc_equal(self, XPC_ERROR_CONNECTION_INTERRUPTED)
}

var connectionClosed: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID)
}

Expand All@@ -253,7 +253,7 @@ extension xpc_object_t {
}

var errorDescription: String? {
precondition(isError, "Not an error")
precondition(isError, "not an error")
let cstring = xpc_dictionary_get_string(self, XPC_ERROR_KEY_DESCRIPTION)
guard let cstring else {
return nil
Expand Down
4 changes: 2 additions & 2 deletions Sources/Helpers/APIServer/ContainerDNSHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -97,12 +97,12 @@ struct ContainerDNSHandler: DNSHandler {

let components = ipAllocation.address.split(separator: "/")
guard !components.isEmpty else {
throw DNSResolverError.serverError("Invalid IP format: empty address")
throw DNSResolverError.serverError("invalid IP format: empty address")
}

let ipString = String(components[0])
guard let ip = IPv4(ipString) else {
throw DNSResolverError.serverError("Failed to parse IP address: \(ipString)")
throw DNSResolverError.serverError("failed to parse IP address: \(ipString)")
}

return HostRecord<IPv4>(name: question.name, ttl: ttl, ip: ip)
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -191,7 +191,7 @@ public actor VolumesService {
let sizeInBytes = UInt64(bytes)

guard sizeInBytes >= minSize else {
throw VolumeError.storageError("Volume size too small: minimum 1MiB")
throw VolumeError.storageError("volume size too small: minimum 1MiB")
}

return sizeInBytes
Expand DownExpand Up@@ -244,7 +244,7 @@ public actor VolumesService {
labels: [String: String]
) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume already exists by trying to list and finding it
Expand DownExpand Up@@ -283,7 +283,7 @@ public actor VolumesService {

private func _delete(name: String) async throws {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume exists by trying to list and finding it
Expand DownExpand Up@@ -311,7 +311,7 @@ public actor VolumesService {

private func _inspect(_ name: String) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

let volumes = try await store.list()
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -231,7 +231,7 @@ extension ImagesService {
throw err
}
guard authentication != nil else {
throw ContainerizationError(.internalError, message: "\(String(describing: err)). No credentials found for host \(host)")
throw ContainerizationError(.internalError, message: "\(String(describing: err)), no credentials found for host \(host)")
}
throw err
}
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public actor SnapshotStore {
throw ContainerizationError(.internalError, message: "missing platform for descriptor \(desc.digest)")
}
guard let unpacker = try await self.unpackStrategy(image, platform) else {
self.log?.warning("Skipping unpack for \(image.reference) for platform \(platform.description). No unpacker configured.")
self.log?.warning("no unpacker configured, skipping unpack for \(image.reference) for platform \(platform.description)")
continue
}
let currentSubTask = await taskManager.startTask()
Expand Down
2 changes: 1 addition & 1 deletion Sources/TerminalProgress/ProgressConfig.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -163,7 +163,7 @@ extension ProgressConfig {
public var description: String {
switch self {
case .invalid(let reason):
return "Failed to validate config (\(reason))"
return "failed to validate config (\(reason))"
}
}
}
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Lowercase error messages by dkovba · Pull Request #945 · apple/container · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/ContainerBuild/BuildPipelineHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -105,7 +105,7 @@ public actor BuildPipeline {
throw NSError(
domain: "untilFirstError",
code: 1,
userInfo: [NSLocalizedDescriptionKey: "Failed to initialize task continuation"])
userInfo: [NSLocalizedDescriptionKey: "failed to initialize task continuation"])
}
defer { taskContinuation.finish() }
let stream = AsyncStream<Error> { continuation in
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerBuild/URL+Extensions.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -228,7 +228,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Reset not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "reset not supported with InputStream-based implementation"
])
}

Expand All@@ -240,7 +240,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Offset tracking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "offset tracking not supported with InputStream-based implementation"
])
}

Expand All@@ -252,7 +252,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Seeking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "seeking not supported with InputStream-based implementation"
])
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientDiskUsage.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,7 +31,7 @@ public struct ClientDiskUsage {
guard let responseData = reply.dataNoCopy(key: .diskUsageStats) else {
throw ContainerizationError(
.internalError,
message: "Invalid response from server: missing disk usage data"
message: "invalid response from server: missing disk usage data"
)
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerClient/Core/ClientKernel.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ extension ClientKernel {
throw err
}
throw ContainerizationError(
.notFound, message: "Default kernel not configured for architecture \(platform.architecture). Please use the `container system kernel set` command to configure it")
.notFound, message: "default kernel not configured for architecture \(platform.architecture), please use the `container system kernel set` command to configure it")
}
}
}
Expand All@@ -97,7 +97,7 @@ extension SystemPlatform {
case "amd64":
return .linuxAmd
default:
fatalError("Unknown architecture")
fatalError("unknown architecture")
}
}
}
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientVolume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ public struct ClientVolume {
let reply = try await client.send(message)

guard let responseData = reply.dataNoCopy(key: .volume) else {
throw VolumeError.storageError("Invalid response from server")
throw VolumeError.storageError("invalid response from server")
}

return try JSONDecoder().decode(Volume.self, from: responseData)
Expand Down
12 changes: 6 additions & 6 deletions Sources/ContainerClient/Core/Volume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,17 +80,17 @@ public enum VolumeError: Error, LocalizedError {
public var errorDescription: String? {
switch self {
case .volumeNotFound(let name):
return "Volume '\(name)' not found"
return "volume '\(name)' not found"
case .volumeAlreadyExists(let name):
return "Volume '\(name)' already exists"
return "volume '\(name)' already exists"
case .volumeInUse(let name):
return "Volume '\(name)' is currently in use and cannot be accessed by another container, or deleted."
return "volume '\(name)' is currently in use and cannot be accessed by another container, or deleted"
case .invalidVolumeName(let name):
return "Invalid volume name '\(name)'"
return "invalid volume name '\(name)'"
case .driverNotSupported(let driver):
return "Volume driver '\(driver)' is not supported"
return "volume driver '\(driver)' is not supported"
case .storageError(let message):
return "Storage error: \(message)"
return "storage error: \(message)"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Parser.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -262,7 +262,7 @@ public struct Parser {
}()

guard let commandToRun = processArguments, commandToRun.count > 0 else {
throw ContainerizationError(.invalidArgument, message: "Command/Entrypoint not specified for container process")
throw ContainerizationError(.invalidArgument, message: "command/entrypoint not specified for container process")
}

let defaultUser: ProcessConfiguration.User = {
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/Container/ContainerStats.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -74,7 +74,7 @@ extension Application {
guard let container = allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
found.append(container)
Expand DownExpand Up@@ -102,7 +102,7 @@ extension Application {
guard allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) != nil else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
}
Expand DownExpand Up@@ -140,7 +140,7 @@ extension Application {
}
} catch {
clearScreen()
print("Error collecting stats: \(error)")
print("error collecting stats: \(error)")
try await Task.sleep(for: .seconds(2))
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerCommands/DefaultCommand.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,9 +42,9 @@ struct DefaultCommand: AsyncParsableCommand {

// Check for edge cases and unknown options to match the behavior in the absence of plugins.
if command.isEmpty {
throw ValidationError("Unknown argument '\(command)'")
throw ValidationError("unknown argument '\(command)'")
} else if command.starts(with: "-") {
throw ValidationError("Unknown option '\(command)'")
throw ValidationError("unknown option '\(command)'")
}

// Compute canonical plugin directories to show in helpful errors (avoid hard-coded paths)
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/System/Kernel/KernelSet.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -67,7 +67,7 @@ extension Application {

private func setKernelFromBinary() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
let absolutePath = URL(fileURLWithPath: binaryPath, relativeTo: .currentDirectory()).absoluteURL.absoluteString
let platform = try getSystemPlatform()
Expand All@@ -76,10 +76,10 @@ extension Application {

private func setKernelFromTar() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
guard let tarPath else {
throw ArgumentParser.ValidationError("Missing argument '--tar")
throw ArgumentParser.ValidationError("missing argument '--tar")
}
let platform = try getSystemPlatform()
let localTarPath = URL(fileURLWithPath: tarPath, relativeTo: .currentDirectory()).path
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerCommands/System/SystemDF.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ extension Application {
guard let jsonString = String(data: data, encoding: .utf8) else {
throw ContainerizationError(
.internalError,
message: "Failed to encode JSON output"
message: "failed to encode JSON output"
)
}
print(jsonString)
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerPersistence/DefaultsStore.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public enum DefaultsStore {

private static var udSuite: UserDefaults {
guard let ud = UserDefaults.init(suiteName: self.userDefaultDomain) else {
fatalError("Failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
fatalError("failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
}
return ud
}
Expand Down
8 changes: 4 additions & 4 deletions Sources/ContainerPlugin/PluginLoader.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,7 +133,7 @@ extension PluginLoader {
}.first)
else {
log?.warning(
"Not installing plugin with missing configuration",
"not installing plugin with missing configuration",
metadata: [
"path": "\(installURL.path)"
]
Expand All@@ -144,7 +144,7 @@ extension PluginLoader {
// Warn and skip if this plugin name has been encountered already
guard !pluginNames.contains(plugin.name) else {
log?.warning(
"Not installing shadowed plugin",
"not installing shadowed plugin",
metadata: [
"path": "\(installURL.path)",
"name": "\(plugin.name)",
Expand All@@ -157,7 +157,7 @@ extension PluginLoader {
pluginNames.insert(plugin.name)
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"path": "\(installURL.path)",
"error": "\(error)",
Expand All@@ -183,7 +183,7 @@ extension PluginLoader {
}
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"name": "\(name)",
"error": "\(error)",
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerPlugin/ServiceManager.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -72,12 +72,12 @@ public struct ServiceManager {
let status = launchctl.terminationStatus
guard status == 0 else {
throw ContainerizationError(
.internalError, message: "command `launchctl list` failed with status \(status). Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "command `launchctl list` failed with status \(status), message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

guard let outputText = String(data: outputData, encoding: .utf8) else {
throw ContainerizationError(
.internalError, message: "could not decode output of command `launchctl list`. Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "could not decode output of command `launchctl list`, message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

// The third field of each line of launchctl list output is the label
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerVersion/CommandLine+Executable.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ extension CommandLine {
/// Create the buffer and get the path
buffer = [CChar](repeating: 0, count: Int(bufferSize))
guard _NSGetExecutablePath(&buffer, &bufferSize) == 0 else {
fatalError("UNEXPECTED: failed to get executable path")
fatalError("unexpected: failed to get executable path")
}

/// Return the path with the executable file component removed the last component and
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerXPC/XPCServer.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -239,12 +239,12 @@ extension xpc_object_t {
}

var connectionError: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID) || xpc_equal(self, XPC_ERROR_CONNECTION_INTERRUPTED)
}

var connectionClosed: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID)
}

Expand All@@ -253,7 +253,7 @@ extension xpc_object_t {
}

var errorDescription: String? {
precondition(isError, "Not an error")
precondition(isError, "not an error")
let cstring = xpc_dictionary_get_string(self, XPC_ERROR_KEY_DESCRIPTION)
guard let cstring else {
return nil
Expand Down
4 changes: 2 additions & 2 deletions Sources/Helpers/APIServer/ContainerDNSHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -97,12 +97,12 @@ struct ContainerDNSHandler: DNSHandler {

let components = ipAllocation.address.split(separator: "/")
guard !components.isEmpty else {
throw DNSResolverError.serverError("Invalid IP format: empty address")
throw DNSResolverError.serverError("invalid IP format: empty address")
}

let ipString = String(components[0])
guard let ip = IPv4(ipString) else {
throw DNSResolverError.serverError("Failed to parse IP address: \(ipString)")
throw DNSResolverError.serverError("failed to parse IP address: \(ipString)")
}

return HostRecord<IPv4>(name: question.name, ttl: ttl, ip: ip)
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -191,7 +191,7 @@ public actor VolumesService {
let sizeInBytes = UInt64(bytes)

guard sizeInBytes >= minSize else {
throw VolumeError.storageError("Volume size too small: minimum 1MiB")
throw VolumeError.storageError("volume size too small: minimum 1MiB")
}

return sizeInBytes
Expand DownExpand Up@@ -244,7 +244,7 @@ public actor VolumesService {
labels: [String: String]
) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume already exists by trying to list and finding it
Expand DownExpand Up@@ -283,7 +283,7 @@ public actor VolumesService {

private func _delete(name: String) async throws {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume exists by trying to list and finding it
Expand DownExpand Up@@ -311,7 +311,7 @@ public actor VolumesService {

private func _inspect(_ name: String) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

let volumes = try await store.list()
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -231,7 +231,7 @@ extension ImagesService {
throw err
}
guard authentication != nil else {
throw ContainerizationError(.internalError, message: "\(String(describing: err)). No credentials found for host \(host)")
throw ContainerizationError(.internalError, message: "\(String(describing: err)), no credentials found for host \(host)")
}
throw err
}
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public actor SnapshotStore {
throw ContainerizationError(.internalError, message: "missing platform for descriptor \(desc.digest)")
}
guard let unpacker = try await self.unpackStrategy(image, platform) else {
self.log?.warning("Skipping unpack for \(image.reference) for platform \(platform.description). No unpacker configured.")
self.log?.warning("no unpacker configured, skipping unpack for \(image.reference) for platform \(platform.description)")
continue
}
let currentSubTask = await taskManager.startTask()
Expand Down
2 changes: 1 addition & 1 deletion Sources/TerminalProgress/ProgressConfig.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -163,7 +163,7 @@ extension ProgressConfig {
public var description: String {
switch self {
case .invalid(let reason):
return "Failed to validate config (\(reason))"
return "failed to validate config (\(reason))"
}
}
}
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Lowercase error messages by dkovba · Pull Request #945 · apple/container · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/ContainerBuild/BuildPipelineHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -105,7 +105,7 @@ public actor BuildPipeline {
throw NSError(
domain: "untilFirstError",
code: 1,
userInfo: [NSLocalizedDescriptionKey: "Failed to initialize task continuation"])
userInfo: [NSLocalizedDescriptionKey: "failed to initialize task continuation"])
}
defer { taskContinuation.finish() }
let stream = AsyncStream<Error> { continuation in
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerBuild/URL+Extensions.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -228,7 +228,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Reset not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "reset not supported with InputStream-based implementation"
])
}

Expand All@@ -240,7 +240,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Offset tracking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "offset tracking not supported with InputStream-based implementation"
])
}

Expand All@@ -252,7 +252,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Seeking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "seeking not supported with InputStream-based implementation"
])
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientDiskUsage.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,7 +31,7 @@ public struct ClientDiskUsage {
guard let responseData = reply.dataNoCopy(key: .diskUsageStats) else {
throw ContainerizationError(
.internalError,
message: "Invalid response from server: missing disk usage data"
message: "invalid response from server: missing disk usage data"
)
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerClient/Core/ClientKernel.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ extension ClientKernel {
throw err
}
throw ContainerizationError(
.notFound, message: "Default kernel not configured for architecture \(platform.architecture). Please use the `container system kernel set` command to configure it")
.notFound, message: "default kernel not configured for architecture \(platform.architecture), please use the `container system kernel set` command to configure it")
}
}
}
Expand All@@ -97,7 +97,7 @@ extension SystemPlatform {
case "amd64":
return .linuxAmd
default:
fatalError("Unknown architecture")
fatalError("unknown architecture")
}
}
}
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientVolume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ public struct ClientVolume {
let reply = try await client.send(message)

guard let responseData = reply.dataNoCopy(key: .volume) else {
throw VolumeError.storageError("Invalid response from server")
throw VolumeError.storageError("invalid response from server")
}

return try JSONDecoder().decode(Volume.self, from: responseData)
Expand Down
12 changes: 6 additions & 6 deletions Sources/ContainerClient/Core/Volume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,17 +80,17 @@ public enum VolumeError: Error, LocalizedError {
public var errorDescription: String? {
switch self {
case .volumeNotFound(let name):
return "Volume '\(name)' not found"
return "volume '\(name)' not found"
case .volumeAlreadyExists(let name):
return "Volume '\(name)' already exists"
return "volume '\(name)' already exists"
case .volumeInUse(let name):
return "Volume '\(name)' is currently in use and cannot be accessed by another container, or deleted."
return "volume '\(name)' is currently in use and cannot be accessed by another container, or deleted"
case .invalidVolumeName(let name):
return "Invalid volume name '\(name)'"
return "invalid volume name '\(name)'"
case .driverNotSupported(let driver):
return "Volume driver '\(driver)' is not supported"
return "volume driver '\(driver)' is not supported"
case .storageError(let message):
return "Storage error: \(message)"
return "storage error: \(message)"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Parser.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -262,7 +262,7 @@ public struct Parser {
}()

guard let commandToRun = processArguments, commandToRun.count > 0 else {
throw ContainerizationError(.invalidArgument, message: "Command/Entrypoint not specified for container process")
throw ContainerizationError(.invalidArgument, message: "command/entrypoint not specified for container process")
}

let defaultUser: ProcessConfiguration.User = {
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/Container/ContainerStats.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -74,7 +74,7 @@ extension Application {
guard let container = allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
found.append(container)
Expand DownExpand Up@@ -102,7 +102,7 @@ extension Application {
guard allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) != nil else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
}
Expand DownExpand Up@@ -140,7 +140,7 @@ extension Application {
}
} catch {
clearScreen()
print("Error collecting stats: \(error)")
print("error collecting stats: \(error)")
try await Task.sleep(for: .seconds(2))
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerCommands/DefaultCommand.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,9 +42,9 @@ struct DefaultCommand: AsyncParsableCommand {

// Check for edge cases and unknown options to match the behavior in the absence of plugins.
if command.isEmpty {
throw ValidationError("Unknown argument '\(command)'")
throw ValidationError("unknown argument '\(command)'")
} else if command.starts(with: "-") {
throw ValidationError("Unknown option '\(command)'")
throw ValidationError("unknown option '\(command)'")
}

// Compute canonical plugin directories to show in helpful errors (avoid hard-coded paths)
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/System/Kernel/KernelSet.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -67,7 +67,7 @@ extension Application {

private func setKernelFromBinary() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
let absolutePath = URL(fileURLWithPath: binaryPath, relativeTo: .currentDirectory()).absoluteURL.absoluteString
let platform = try getSystemPlatform()
Expand All@@ -76,10 +76,10 @@ extension Application {

private func setKernelFromTar() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
guard let tarPath else {
throw ArgumentParser.ValidationError("Missing argument '--tar")
throw ArgumentParser.ValidationError("missing argument '--tar")
}
let platform = try getSystemPlatform()
let localTarPath = URL(fileURLWithPath: tarPath, relativeTo: .currentDirectory()).path
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerCommands/System/SystemDF.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ extension Application {
guard let jsonString = String(data: data, encoding: .utf8) else {
throw ContainerizationError(
.internalError,
message: "Failed to encode JSON output"
message: "failed to encode JSON output"
)
}
print(jsonString)
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerPersistence/DefaultsStore.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public enum DefaultsStore {

private static var udSuite: UserDefaults {
guard let ud = UserDefaults.init(suiteName: self.userDefaultDomain) else {
fatalError("Failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
fatalError("failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
}
return ud
}
Expand Down
8 changes: 4 additions & 4 deletions Sources/ContainerPlugin/PluginLoader.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,7 +133,7 @@ extension PluginLoader {
}.first)
else {
log?.warning(
"Not installing plugin with missing configuration",
"not installing plugin with missing configuration",
metadata: [
"path": "\(installURL.path)"
]
Expand All@@ -144,7 +144,7 @@ extension PluginLoader {
// Warn and skip if this plugin name has been encountered already
guard !pluginNames.contains(plugin.name) else {
log?.warning(
"Not installing shadowed plugin",
"not installing shadowed plugin",
metadata: [
"path": "\(installURL.path)",
"name": "\(plugin.name)",
Expand All@@ -157,7 +157,7 @@ extension PluginLoader {
pluginNames.insert(plugin.name)
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"path": "\(installURL.path)",
"error": "\(error)",
Expand All@@ -183,7 +183,7 @@ extension PluginLoader {
}
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"name": "\(name)",
"error": "\(error)",
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerPlugin/ServiceManager.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -72,12 +72,12 @@ public struct ServiceManager {
let status = launchctl.terminationStatus
guard status == 0 else {
throw ContainerizationError(
.internalError, message: "command `launchctl list` failed with status \(status). Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "command `launchctl list` failed with status \(status), message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

guard let outputText = String(data: outputData, encoding: .utf8) else {
throw ContainerizationError(
.internalError, message: "could not decode output of command `launchctl list`. Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "could not decode output of command `launchctl list`, message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

// The third field of each line of launchctl list output is the label
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerVersion/CommandLine+Executable.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ extension CommandLine {
/// Create the buffer and get the path
buffer = [CChar](repeating: 0, count: Int(bufferSize))
guard _NSGetExecutablePath(&buffer, &bufferSize) == 0 else {
fatalError("UNEXPECTED: failed to get executable path")
fatalError("unexpected: failed to get executable path")
}

/// Return the path with the executable file component removed the last component and
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerXPC/XPCServer.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -239,12 +239,12 @@ extension xpc_object_t {
}

var connectionError: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID) || xpc_equal(self, XPC_ERROR_CONNECTION_INTERRUPTED)
}

var connectionClosed: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID)
}

Expand All@@ -253,7 +253,7 @@ extension xpc_object_t {
}

var errorDescription: String? {
precondition(isError, "Not an error")
precondition(isError, "not an error")
let cstring = xpc_dictionary_get_string(self, XPC_ERROR_KEY_DESCRIPTION)
guard let cstring else {
return nil
Expand Down
4 changes: 2 additions & 2 deletions Sources/Helpers/APIServer/ContainerDNSHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -97,12 +97,12 @@ struct ContainerDNSHandler: DNSHandler {

let components = ipAllocation.address.split(separator: "/")
guard !components.isEmpty else {
throw DNSResolverError.serverError("Invalid IP format: empty address")
throw DNSResolverError.serverError("invalid IP format: empty address")
}

let ipString = String(components[0])
guard let ip = IPv4(ipString) else {
throw DNSResolverError.serverError("Failed to parse IP address: \(ipString)")
throw DNSResolverError.serverError("failed to parse IP address: \(ipString)")
}

return HostRecord<IPv4>(name: question.name, ttl: ttl, ip: ip)
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -191,7 +191,7 @@ public actor VolumesService {
let sizeInBytes = UInt64(bytes)

guard sizeInBytes >= minSize else {
throw VolumeError.storageError("Volume size too small: minimum 1MiB")
throw VolumeError.storageError("volume size too small: minimum 1MiB")
}

return sizeInBytes
Expand DownExpand Up@@ -244,7 +244,7 @@ public actor VolumesService {
labels: [String: String]
) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume already exists by trying to list and finding it
Expand DownExpand Up@@ -283,7 +283,7 @@ public actor VolumesService {

private func _delete(name: String) async throws {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume exists by trying to list and finding it
Expand DownExpand Up@@ -311,7 +311,7 @@ public actor VolumesService {

private func _inspect(_ name: String) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

let volumes = try await store.list()
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -231,7 +231,7 @@ extension ImagesService {
throw err
}
guard authentication != nil else {
throw ContainerizationError(.internalError, message: "\(String(describing: err)). No credentials found for host \(host)")
throw ContainerizationError(.internalError, message: "\(String(describing: err)), no credentials found for host \(host)")
}
throw err
}
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public actor SnapshotStore {
throw ContainerizationError(.internalError, message: "missing platform for descriptor \(desc.digest)")
}
guard let unpacker = try await self.unpackStrategy(image, platform) else {
self.log?.warning("Skipping unpack for \(image.reference) for platform \(platform.description). No unpacker configured.")
self.log?.warning("no unpacker configured, skipping unpack for \(image.reference) for platform \(platform.description)")
continue
}
let currentSubTask = await taskManager.startTask()
Expand Down
2 changes: 1 addition & 1 deletion Sources/TerminalProgress/ProgressConfig.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -163,7 +163,7 @@ extension ProgressConfig {
public var description: String {
switch self {
case .invalid(let reason):
return "Failed to validate config (\(reason))"
return "failed to validate config (\(reason))"
}
}
}
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Lowercase error messages by dkovba · Pull Request #945 · apple/container · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/ContainerBuild/BuildPipelineHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -105,7 +105,7 @@ public actor BuildPipeline {
throw NSError(
domain: "untilFirstError",
code: 1,
userInfo: [NSLocalizedDescriptionKey: "Failed to initialize task continuation"])
userInfo: [NSLocalizedDescriptionKey: "failed to initialize task continuation"])
}
defer { taskContinuation.finish() }
let stream = AsyncStream<Error> { continuation in
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerBuild/URL+Extensions.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -228,7 +228,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Reset not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "reset not supported with InputStream-based implementation"
])
}

Expand All@@ -240,7 +240,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Offset tracking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "offset tracking not supported with InputStream-based implementation"
])
}

Expand All@@ -252,7 +252,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Seeking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "seeking not supported with InputStream-based implementation"
])
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientDiskUsage.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,7 +31,7 @@ public struct ClientDiskUsage {
guard let responseData = reply.dataNoCopy(key: .diskUsageStats) else {
throw ContainerizationError(
.internalError,
message: "Invalid response from server: missing disk usage data"
message: "invalid response from server: missing disk usage data"
)
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerClient/Core/ClientKernel.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ extension ClientKernel {
throw err
}
throw ContainerizationError(
.notFound, message: "Default kernel not configured for architecture \(platform.architecture). Please use the `container system kernel set` command to configure it")
.notFound, message: "default kernel not configured for architecture \(platform.architecture), please use the `container system kernel set` command to configure it")
}
}
}
Expand All@@ -97,7 +97,7 @@ extension SystemPlatform {
case "amd64":
return .linuxAmd
default:
fatalError("Unknown architecture")
fatalError("unknown architecture")
}
}
}
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientVolume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ public struct ClientVolume {
let reply = try await client.send(message)

guard let responseData = reply.dataNoCopy(key: .volume) else {
throw VolumeError.storageError("Invalid response from server")
throw VolumeError.storageError("invalid response from server")
}

return try JSONDecoder().decode(Volume.self, from: responseData)
Expand Down
12 changes: 6 additions & 6 deletions Sources/ContainerClient/Core/Volume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,17 +80,17 @@ public enum VolumeError: Error, LocalizedError {
public var errorDescription: String? {
switch self {
case .volumeNotFound(let name):
return "Volume '\(name)' not found"
return "volume '\(name)' not found"
case .volumeAlreadyExists(let name):
return "Volume '\(name)' already exists"
return "volume '\(name)' already exists"
case .volumeInUse(let name):
return "Volume '\(name)' is currently in use and cannot be accessed by another container, or deleted."
return "volume '\(name)' is currently in use and cannot be accessed by another container, or deleted"
case .invalidVolumeName(let name):
return "Invalid volume name '\(name)'"
return "invalid volume name '\(name)'"
case .driverNotSupported(let driver):
return "Volume driver '\(driver)' is not supported"
return "volume driver '\(driver)' is not supported"
case .storageError(let message):
return "Storage error: \(message)"
return "storage error: \(message)"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Parser.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -262,7 +262,7 @@ public struct Parser {
}()

guard let commandToRun = processArguments, commandToRun.count > 0 else {
throw ContainerizationError(.invalidArgument, message: "Command/Entrypoint not specified for container process")
throw ContainerizationError(.invalidArgument, message: "command/entrypoint not specified for container process")
}

let defaultUser: ProcessConfiguration.User = {
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/Container/ContainerStats.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -74,7 +74,7 @@ extension Application {
guard let container = allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
found.append(container)
Expand DownExpand Up@@ -102,7 +102,7 @@ extension Application {
guard allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) != nil else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
}
Expand DownExpand Up@@ -140,7 +140,7 @@ extension Application {
}
} catch {
clearScreen()
print("Error collecting stats: \(error)")
print("error collecting stats: \(error)")
try await Task.sleep(for: .seconds(2))
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerCommands/DefaultCommand.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,9 +42,9 @@ struct DefaultCommand: AsyncParsableCommand {

// Check for edge cases and unknown options to match the behavior in the absence of plugins.
if command.isEmpty {
throw ValidationError("Unknown argument '\(command)'")
throw ValidationError("unknown argument '\(command)'")
} else if command.starts(with: "-") {
throw ValidationError("Unknown option '\(command)'")
throw ValidationError("unknown option '\(command)'")
}

// Compute canonical plugin directories to show in helpful errors (avoid hard-coded paths)
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/System/Kernel/KernelSet.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -67,7 +67,7 @@ extension Application {

private func setKernelFromBinary() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
let absolutePath = URL(fileURLWithPath: binaryPath, relativeTo: .currentDirectory()).absoluteURL.absoluteString
let platform = try getSystemPlatform()
Expand All@@ -76,10 +76,10 @@ extension Application {

private func setKernelFromTar() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
guard let tarPath else {
throw ArgumentParser.ValidationError("Missing argument '--tar")
throw ArgumentParser.ValidationError("missing argument '--tar")
}
let platform = try getSystemPlatform()
let localTarPath = URL(fileURLWithPath: tarPath, relativeTo: .currentDirectory()).path
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerCommands/System/SystemDF.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ extension Application {
guard let jsonString = String(data: data, encoding: .utf8) else {
throw ContainerizationError(
.internalError,
message: "Failed to encode JSON output"
message: "failed to encode JSON output"
)
}
print(jsonString)
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerPersistence/DefaultsStore.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public enum DefaultsStore {

private static var udSuite: UserDefaults {
guard let ud = UserDefaults.init(suiteName: self.userDefaultDomain) else {
fatalError("Failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
fatalError("failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
}
return ud
}
Expand Down
8 changes: 4 additions & 4 deletions Sources/ContainerPlugin/PluginLoader.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,7 +133,7 @@ extension PluginLoader {
}.first)
else {
log?.warning(
"Not installing plugin with missing configuration",
"not installing plugin with missing configuration",
metadata: [
"path": "\(installURL.path)"
]
Expand All@@ -144,7 +144,7 @@ extension PluginLoader {
// Warn and skip if this plugin name has been encountered already
guard !pluginNames.contains(plugin.name) else {
log?.warning(
"Not installing shadowed plugin",
"not installing shadowed plugin",
metadata: [
"path": "\(installURL.path)",
"name": "\(plugin.name)",
Expand All@@ -157,7 +157,7 @@ extension PluginLoader {
pluginNames.insert(plugin.name)
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"path": "\(installURL.path)",
"error": "\(error)",
Expand All@@ -183,7 +183,7 @@ extension PluginLoader {
}
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"name": "\(name)",
"error": "\(error)",
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerPlugin/ServiceManager.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -72,12 +72,12 @@ public struct ServiceManager {
let status = launchctl.terminationStatus
guard status == 0 else {
throw ContainerizationError(
.internalError, message: "command `launchctl list` failed with status \(status). Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "command `launchctl list` failed with status \(status), message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

guard let outputText = String(data: outputData, encoding: .utf8) else {
throw ContainerizationError(
.internalError, message: "could not decode output of command `launchctl list`. Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "could not decode output of command `launchctl list`, message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

// The third field of each line of launchctl list output is the label
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerVersion/CommandLine+Executable.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ extension CommandLine {
/// Create the buffer and get the path
buffer = [CChar](repeating: 0, count: Int(bufferSize))
guard _NSGetExecutablePath(&buffer, &bufferSize) == 0 else {
fatalError("UNEXPECTED: failed to get executable path")
fatalError("unexpected: failed to get executable path")
}

/// Return the path with the executable file component removed the last component and
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerXPC/XPCServer.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -239,12 +239,12 @@ extension xpc_object_t {
}

var connectionError: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID) || xpc_equal(self, XPC_ERROR_CONNECTION_INTERRUPTED)
}

var connectionClosed: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID)
}

Expand All@@ -253,7 +253,7 @@ extension xpc_object_t {
}

var errorDescription: String? {
precondition(isError, "Not an error")
precondition(isError, "not an error")
let cstring = xpc_dictionary_get_string(self, XPC_ERROR_KEY_DESCRIPTION)
guard let cstring else {
return nil
Expand Down
4 changes: 2 additions & 2 deletions Sources/Helpers/APIServer/ContainerDNSHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -97,12 +97,12 @@ struct ContainerDNSHandler: DNSHandler {

let components = ipAllocation.address.split(separator: "/")
guard !components.isEmpty else {
throw DNSResolverError.serverError("Invalid IP format: empty address")
throw DNSResolverError.serverError("invalid IP format: empty address")
}

let ipString = String(components[0])
guard let ip = IPv4(ipString) else {
throw DNSResolverError.serverError("Failed to parse IP address: \(ipString)")
throw DNSResolverError.serverError("failed to parse IP address: \(ipString)")
}

return HostRecord<IPv4>(name: question.name, ttl: ttl, ip: ip)
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -191,7 +191,7 @@ public actor VolumesService {
let sizeInBytes = UInt64(bytes)

guard sizeInBytes >= minSize else {
throw VolumeError.storageError("Volume size too small: minimum 1MiB")
throw VolumeError.storageError("volume size too small: minimum 1MiB")
}

return sizeInBytes
Expand DownExpand Up@@ -244,7 +244,7 @@ public actor VolumesService {
labels: [String: String]
) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume already exists by trying to list and finding it
Expand DownExpand Up@@ -283,7 +283,7 @@ public actor VolumesService {

private func _delete(name: String) async throws {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume exists by trying to list and finding it
Expand DownExpand Up@@ -311,7 +311,7 @@ public actor VolumesService {

private func _inspect(_ name: String) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

let volumes = try await store.list()
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -231,7 +231,7 @@ extension ImagesService {
throw err
}
guard authentication != nil else {
throw ContainerizationError(.internalError, message: "\(String(describing: err)). No credentials found for host \(host)")
throw ContainerizationError(.internalError, message: "\(String(describing: err)), no credentials found for host \(host)")
}
throw err
}
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public actor SnapshotStore {
throw ContainerizationError(.internalError, message: "missing platform for descriptor \(desc.digest)")
}
guard let unpacker = try await self.unpackStrategy(image, platform) else {
self.log?.warning("Skipping unpack for \(image.reference) for platform \(platform.description). No unpacker configured.")
self.log?.warning("no unpacker configured, skipping unpack for \(image.reference) for platform \(platform.description)")
continue
}
let currentSubTask = await taskManager.startTask()
Expand Down
2 changes: 1 addition & 1 deletion Sources/TerminalProgress/ProgressConfig.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -163,7 +163,7 @@ extension ProgressConfig {
public var description: String {
switch self {
case .invalid(let reason):
return "Failed to validate config (\(reason))"
return "failed to validate config (\(reason))"
}
}
}
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Lowercase error messages by dkovba · Pull Request #945 · apple/container · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/ContainerBuild/BuildPipelineHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -105,7 +105,7 @@ public actor BuildPipeline {
throw NSError(
domain: "untilFirstError",
code: 1,
userInfo: [NSLocalizedDescriptionKey: "Failed to initialize task continuation"])
userInfo: [NSLocalizedDescriptionKey: "failed to initialize task continuation"])
}
defer { taskContinuation.finish() }
let stream = AsyncStream<Error> { continuation in
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerBuild/URL+Extensions.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -228,7 +228,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Reset not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "reset not supported with InputStream-based implementation"
])
}

Expand All@@ -240,7 +240,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Offset tracking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "offset tracking not supported with InputStream-based implementation"
])
}

Expand All@@ -252,7 +252,7 @@ public final class BufferedCopyReader: AsyncSequence {
throw CocoaError(
.fileReadUnsupportedScheme,
userInfo: [
NSLocalizedDescriptionKey: "Seeking not supported with InputStream-based implementation"
NSLocalizedDescriptionKey: "seeking not supported with InputStream-based implementation"
])
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientDiskUsage.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,7 +31,7 @@ public struct ClientDiskUsage {
guard let responseData = reply.dataNoCopy(key: .diskUsageStats) else {
throw ContainerizationError(
.internalError,
message: "Invalid response from server: missing disk usage data"
message: "invalid response from server: missing disk usage data"
)
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerClient/Core/ClientKernel.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ extension ClientKernel {
throw err
}
throw ContainerizationError(
.notFound, message: "Default kernel not configured for architecture \(platform.architecture). Please use the `container system kernel set` command to configure it")
.notFound, message: "default kernel not configured for architecture \(platform.architecture), please use the `container system kernel set` command to configure it")
}
}
}
Expand All@@ -97,7 +97,7 @@ extension SystemPlatform {
case "amd64":
return .linuxAmd
default:
fatalError("Unknown architecture")
fatalError("unknown architecture")
}
}
}
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Core/ClientVolume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ public struct ClientVolume {
let reply = try await client.send(message)

guard let responseData = reply.dataNoCopy(key: .volume) else {
throw VolumeError.storageError("Invalid response from server")
throw VolumeError.storageError("invalid response from server")
}

return try JSONDecoder().decode(Volume.self, from: responseData)
Expand Down
12 changes: 6 additions & 6 deletions Sources/ContainerClient/Core/Volume.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,17 +80,17 @@ public enum VolumeError: Error, LocalizedError {
public var errorDescription: String? {
switch self {
case .volumeNotFound(let name):
return "Volume '\(name)' not found"
return "volume '\(name)' not found"
case .volumeAlreadyExists(let name):
return "Volume '\(name)' already exists"
return "volume '\(name)' already exists"
case .volumeInUse(let name):
return "Volume '\(name)' is currently in use and cannot be accessed by another container, or deleted."
return "volume '\(name)' is currently in use and cannot be accessed by another container, or deleted"
case .invalidVolumeName(let name):
return "Invalid volume name '\(name)'"
return "invalid volume name '\(name)'"
case .driverNotSupported(let driver):
return "Volume driver '\(driver)' is not supported"
return "volume driver '\(driver)' is not supported"
case .storageError(let message):
return "Storage error: \(message)"
return "storage error: \(message)"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerClient/Parser.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -262,7 +262,7 @@ public struct Parser {
}()

guard let commandToRun = processArguments, commandToRun.count > 0 else {
throw ContainerizationError(.invalidArgument, message: "Command/Entrypoint not specified for container process")
throw ContainerizationError(.invalidArgument, message: "command/entrypoint not specified for container process")
}

let defaultUser: ProcessConfiguration.User = {
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/Container/ContainerStats.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -74,7 +74,7 @@ extension Application {
guard let container = allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
found.append(container)
Expand DownExpand Up@@ -102,7 +102,7 @@ extension Application {
guard allContainers.first(where: { $0.id == containerId || $0.id.starts(with: containerId) }) != nil else {
throw ContainerizationError(
.notFound,
message: "Error: No such container: \(containerId)"
message: "no such container: \(containerId)"
)
}
}
Expand DownExpand Up@@ -140,7 +140,7 @@ extension Application {
}
} catch {
clearScreen()
print("Error collecting stats: \(error)")
print("error collecting stats: \(error)")
try await Task.sleep(for: .seconds(2))
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerCommands/DefaultCommand.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,9 +42,9 @@ struct DefaultCommand: AsyncParsableCommand {

// Check for edge cases and unknown options to match the behavior in the absence of plugins.
if command.isEmpty {
throw ValidationError("Unknown argument '\(command)'")
throw ValidationError("unknown argument '\(command)'")
} else if command.starts(with: "-") {
throw ValidationError("Unknown option '\(command)'")
throw ValidationError("unknown option '\(command)'")
}

// Compute canonical plugin directories to show in helpful errors (avoid hard-coded paths)
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerCommands/System/Kernel/KernelSet.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -67,7 +67,7 @@ extension Application {

private func setKernelFromBinary() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
let absolutePath = URL(fileURLWithPath: binaryPath, relativeTo: .currentDirectory()).absoluteURL.absoluteString
let platform = try getSystemPlatform()
Expand All@@ -76,10 +76,10 @@ extension Application {

private func setKernelFromTar() async throws {
guard let binaryPath else {
throw ArgumentParser.ValidationError("Missing argument '--binary'")
throw ArgumentParser.ValidationError("missing argument '--binary'")
}
guard let tarPath else {
throw ArgumentParser.ValidationError("Missing argument '--tar")
throw ArgumentParser.ValidationError("missing argument '--tar")
}
let platform = try getSystemPlatform()
let localTarPath = URL(fileURLWithPath: tarPath, relativeTo: .currentDirectory()).path
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerCommands/System/SystemDF.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ extension Application {
guard let jsonString = String(data: data, encoding: .utf8) else {
throw ContainerizationError(
.internalError,
message: "Failed to encode JSON output"
message: "failed to encode JSON output"
)
}
print(jsonString)
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerPersistence/DefaultsStore.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public enum DefaultsStore {

private static var udSuite: UserDefaults {
guard let ud = UserDefaults.init(suiteName: self.userDefaultDomain) else {
fatalError("Failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
fatalError("failed to initialize UserDefaults for domain \(self.userDefaultDomain)")
}
return ud
}
Expand Down
8 changes: 4 additions & 4 deletions Sources/ContainerPlugin/PluginLoader.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,7 +133,7 @@ extension PluginLoader {
}.first)
else {
log?.warning(
"Not installing plugin with missing configuration",
"not installing plugin with missing configuration",
metadata: [
"path": "\(installURL.path)"
]
Expand All@@ -144,7 +144,7 @@ extension PluginLoader {
// Warn and skip if this plugin name has been encountered already
guard !pluginNames.contains(plugin.name) else {
log?.warning(
"Not installing shadowed plugin",
"not installing shadowed plugin",
metadata: [
"path": "\(installURL.path)",
"name": "\(plugin.name)",
Expand All@@ -157,7 +157,7 @@ extension PluginLoader {
pluginNames.insert(plugin.name)
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"path": "\(installURL.path)",
"error": "\(error)",
Expand All@@ -183,7 +183,7 @@ extension PluginLoader {
}
} catch {
log?.warning(
"Not installing plugin with invalid configuration",
"not installing plugin with invalid configuration",
metadata: [
"name": "\(name)",
"error": "\(error)",
Expand Down
4 changes: 2 additions & 2 deletions Sources/ContainerPlugin/ServiceManager.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -72,12 +72,12 @@ public struct ServiceManager {
let status = launchctl.terminationStatus
guard status == 0 else {
throw ContainerizationError(
.internalError, message: "command `launchctl list` failed with status \(status). Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "command `launchctl list` failed with status \(status), message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

guard let outputText = String(data: outputData, encoding: .utf8) else {
throw ContainerizationError(
.internalError, message: "could not decode output of command `launchctl list`. Message: \(String(data: stderrData, encoding: .utf8) ?? "No error message")")
.internalError, message: "could not decode output of command `launchctl list`, message: \(String(data: stderrData, encoding: .utf8) ?? "no error message")")
}

// The third field of each line of launchctl list output is the label
Expand Down
2 changes: 1 addition & 1 deletion Sources/ContainerVersion/CommandLine+Executable.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ extension CommandLine {
/// Create the buffer and get the path
buffer = [CChar](repeating: 0, count: Int(bufferSize))
guard _NSGetExecutablePath(&buffer, &bufferSize) == 0 else {
fatalError("UNEXPECTED: failed to get executable path")
fatalError("unexpected: failed to get executable path")
}

/// Return the path with the executable file component removed the last component and
Expand Down
6 changes: 3 additions & 3 deletions Sources/ContainerXPC/XPCServer.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -239,12 +239,12 @@ extension xpc_object_t {
}

var connectionError: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID) || xpc_equal(self, XPC_ERROR_CONNECTION_INTERRUPTED)
}

var connectionClosed: Bool {
precondition(isError, "Not an error")
precondition(isError, "not an error")
return xpc_equal(self, XPC_ERROR_CONNECTION_INVALID)
}

Expand All@@ -253,7 +253,7 @@ extension xpc_object_t {
}

var errorDescription: String? {
precondition(isError, "Not an error")
precondition(isError, "not an error")
let cstring = xpc_dictionary_get_string(self, XPC_ERROR_KEY_DESCRIPTION)
guard let cstring else {
return nil
Expand Down
4 changes: 2 additions & 2 deletions Sources/Helpers/APIServer/ContainerDNSHandler.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -97,12 +97,12 @@ struct ContainerDNSHandler: DNSHandler {

let components = ipAllocation.address.split(separator: "/")
guard !components.isEmpty else {
throw DNSResolverError.serverError("Invalid IP format: empty address")
throw DNSResolverError.serverError("invalid IP format: empty address")
}

let ipString = String(components[0])
guard let ip = IPv4(ipString) else {
throw DNSResolverError.serverError("Failed to parse IP address: \(ipString)")
throw DNSResolverError.serverError("failed to parse IP address: \(ipString)")
}

return HostRecord<IPv4>(name: question.name, ttl: ttl, ip: ip)
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -191,7 +191,7 @@ public actor VolumesService {
let sizeInBytes = UInt64(bytes)

guard sizeInBytes >= minSize else {
throw VolumeError.storageError("Volume size too small: minimum 1MiB")
throw VolumeError.storageError("volume size too small: minimum 1MiB")
}

return sizeInBytes
Expand DownExpand Up@@ -244,7 +244,7 @@ public actor VolumesService {
labels: [String: String]
) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume already exists by trying to list and finding it
Expand DownExpand Up@@ -283,7 +283,7 @@ public actor VolumesService {

private func _delete(name: String) async throws {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

// Check if volume exists by trying to list and finding it
Expand DownExpand Up@@ -311,7 +311,7 @@ public actor VolumesService {

private func _inspect(_ name: String) async throws -> Volume {
guard VolumeStorage.isValidVolumeName(name) else {
throw VolumeError.invalidVolumeName("Invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
throw VolumeError.invalidVolumeName("invalid volume name '\(name)': must match \(VolumeStorage.volumeNamePattern)")
}

let volumes = try await store.list()
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -231,7 +231,7 @@ extension ImagesService {
throw err
}
guard authentication != nil else {
throw ContainerizationError(.internalError, message: "\(String(describing: err)). No credentials found for host \(host)")
throw ContainerizationError(.internalError, message: "\(String(describing: err)), no credentials found for host \(host)")
}
throw err
}
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ public actor SnapshotStore {
throw ContainerizationError(.internalError, message: "missing platform for descriptor \(desc.digest)")
}
guard let unpacker = try await self.unpackStrategy(image, platform) else {
self.log?.warning("Skipping unpack for \(image.reference) for platform \(platform.description). No unpacker configured.")
self.log?.warning("no unpacker configured, skipping unpack for \(image.reference) for platform \(platform.description)")
continue
}
let currentSubTask = await taskManager.startTask()
Expand Down
2 changes: 1 addition & 1 deletion Sources/TerminalProgress/ProgressConfig.swift
Original file line numberDiff line numberDiff line change
Expand Up@@ -163,7 +163,7 @@ extension ProgressConfig {
public var description: String {
switch self {
case .invalid(let reason):
return "Failed to validate config (\(reason))"
return "failed to validate config (\(reason))"
}
}
}
Expand Down