build: update iOS lint scripts
parent
1cb85fdea8
commit
fef1841fee
|
|
@ -22,6 +22,11 @@
|
||||||
<string>1.0</string>
|
<string>1.0</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1</string>
|
<string>1</string>
|
||||||
|
<key>NSAppTransportSecurity</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSAllowsArbitraryLoadsInWebContent</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
<key>NSBonjourServices</key>
|
<key>NSBonjourServices</key>
|
||||||
<array>
|
<array>
|
||||||
<string>_clawdis-bridge._tcp</string>
|
<string>_clawdis-bridge._tcp</string>
|
||||||
|
|
@ -30,11 +35,6 @@
|
||||||
<string>Clawdis can capture photos or short video clips when requested via the bridge.</string>
|
<string>Clawdis can capture photos or short video clips when requested via the bridge.</string>
|
||||||
<key>NSLocalNetworkUsageDescription</key>
|
<key>NSLocalNetworkUsageDescription</key>
|
||||||
<string>Clawdis discovers and connects to your Clawdis bridge on the local network.</string>
|
<string>Clawdis discovers and connects to your Clawdis bridge on the local network.</string>
|
||||||
<key>NSAppTransportSecurity</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSAllowsArbitraryLoadsInWebContent</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>NSMicrophoneUsageDescription</key>
|
<key>NSMicrophoneUsageDescription</key>
|
||||||
<string>Clawdis needs microphone access for voice wake.</string>
|
<string>Clawdis needs microphone access for voice wake.</string>
|
||||||
<key>NSSpeechRecognitionUsageDescription</key>
|
<key>NSSpeechRecognitionUsageDescription</key>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
Sources/Bridge/BridgeClient.swift
|
||||||
|
Sources/Bridge/BridgeConnectionController.swift
|
||||||
|
Sources/Bridge/BridgeDiscoveryDebugLogView.swift
|
||||||
|
Sources/Bridge/BridgeDiscoveryModel.swift
|
||||||
|
Sources/Bridge/BridgeEndpointID.swift
|
||||||
|
Sources/Bridge/BridgeSession.swift
|
||||||
|
Sources/Bridge/BridgeSettingsStore.swift
|
||||||
|
Sources/Bridge/KeychainStore.swift
|
||||||
|
Sources/Camera/CameraController.swift
|
||||||
|
Sources/Chat/ChatSheet.swift
|
||||||
|
Sources/Chat/IOSBridgeChatTransport.swift
|
||||||
|
Sources/ClawdisApp.swift
|
||||||
|
Sources/Model/NodeAppModel.swift
|
||||||
|
Sources/RootCanvas.swift
|
||||||
|
Sources/RootTabs.swift
|
||||||
|
Sources/Screen/ScreenController.swift
|
||||||
|
Sources/Screen/ScreenRecordService.swift
|
||||||
|
Sources/Screen/ScreenTab.swift
|
||||||
|
Sources/Screen/ScreenWebView.swift
|
||||||
|
Sources/Settings/SettingsNetworkingHelpers.swift
|
||||||
|
Sources/Settings/SettingsTab.swift
|
||||||
|
Sources/Settings/VoiceWakeWordsSettingsView.swift
|
||||||
|
Sources/Status/StatusPill.swift
|
||||||
|
Sources/Status/VoiceWakeToast.swift
|
||||||
|
Sources/Voice/VoiceTab.swift
|
||||||
|
Sources/Voice/VoiceWakeManager.swift
|
||||||
|
Sources/Voice/VoiceWakePreferences.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatComposer.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatMarkdownSplitter.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatMessageViews.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatModels.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatPayloadDecoding.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatSessions.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatSheets.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatTheme.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatTransport.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatView.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisChatUI/ChatViewModel.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/AnyCodable.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/BonjourEscapes.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/BonjourTypes.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/BridgeFrames.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/CameraCommands.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/CanvasA2UIAction.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/CanvasA2UICommands.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/CanvasA2UIJSONL.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/CanvasCommandParams.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/CanvasCommands.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/Capabilities.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/ClawdisKitResources.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/DeepLinks.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/JPEGTranscoder.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/NodeError.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/ScreenCommands.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/StoragePaths.swift
|
||||||
|
../shared/ClawdisKit/Sources/ClawdisKit/SystemCommands.swift
|
||||||
|
|
@ -33,24 +33,29 @@ targets:
|
||||||
preBuildScripts:
|
preBuildScripts:
|
||||||
- name: SwiftFormat (lint)
|
- name: SwiftFormat (lint)
|
||||||
basedOnDependencyAnalysis: false
|
basedOnDependencyAnalysis: false
|
||||||
|
inputFileLists:
|
||||||
|
- $(SRCROOT)/SwiftSources.input.xcfilelist
|
||||||
script: |
|
script: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
|
||||||
if ! command -v swiftformat >/dev/null 2>&1; then
|
if ! command -v swiftformat >/dev/null 2>&1; then
|
||||||
echo "error: swiftformat not found (brew install swiftformat)" >&2
|
echo "error: swiftformat not found (brew install swiftformat)" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
swiftformat --lint --config "$SRCROOT/../../.swiftformat" \
|
swiftformat --lint --config "$SRCROOT/../../.swiftformat" \
|
||||||
"$SRCROOT/Sources" \
|
--filelist "$SRCROOT/SwiftSources.input.xcfilelist"
|
||||||
"$SRCROOT/../shared/ClawdisKit/Sources"
|
|
||||||
- name: SwiftLint
|
- name: SwiftLint
|
||||||
basedOnDependencyAnalysis: false
|
basedOnDependencyAnalysis: false
|
||||||
|
inputFileLists:
|
||||||
|
- $(SRCROOT)/SwiftSources.input.xcfilelist
|
||||||
script: |
|
script: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
|
||||||
if ! command -v swiftlint >/dev/null 2>&1; then
|
if ! command -v swiftlint >/dev/null 2>&1; then
|
||||||
echo "error: swiftlint not found (brew install swiftlint)" >&2
|
echo "error: swiftlint not found (brew install swiftlint)" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
swiftlint lint --config "$SRCROOT/.swiftlint.yml"
|
swiftlint lint --config "$SRCROOT/.swiftlint.yml" --use-script-input-file-lists
|
||||||
settings:
|
settings:
|
||||||
base:
|
base:
|
||||||
PRODUCT_BUNDLE_IDENTIFIER: com.steipete.clawdis.ios
|
PRODUCT_BUNDLE_IDENTIFIER: com.steipete.clawdis.ios
|
||||||
|
|
@ -66,6 +71,8 @@ targets:
|
||||||
UIBackgroundModes:
|
UIBackgroundModes:
|
||||||
- audio
|
- audio
|
||||||
NSLocalNetworkUsageDescription: Clawdis discovers and connects to your Clawdis bridge on the local network.
|
NSLocalNetworkUsageDescription: Clawdis discovers and connects to your Clawdis bridge on the local network.
|
||||||
|
NSAppTransportSecurity:
|
||||||
|
NSAllowsArbitraryLoadsInWebContent: true
|
||||||
NSBonjourServices:
|
NSBonjourServices:
|
||||||
- _clawdis-bridge._tcp
|
- _clawdis-bridge._tcp
|
||||||
NSCameraUsageDescription: Clawdis can capture photos or short video clips when requested via the bridge.
|
NSCameraUsageDescription: Clawdis can capture photos or short video clips when requested via the bridge.
|
||||||
|
|
|
||||||
|
|
@ -27,21 +27,21 @@ private struct ChatBubbleShape: InsettableShape {
|
||||||
}
|
}
|
||||||
|
|
||||||
func path(in rect: CGRect) -> Path {
|
func path(in rect: CGRect) -> Path {
|
||||||
let rect = rect.insetBy(dx: insetAmount, dy: insetAmount)
|
let rect = rect.insetBy(dx: self.insetAmount, dy: self.insetAmount)
|
||||||
switch tail {
|
switch self.tail {
|
||||||
case .left:
|
case .left:
|
||||||
return self.leftTailPath(in: rect, radius: cornerRadius)
|
return self.leftTailPath(in: rect, radius: self.cornerRadius)
|
||||||
case .right:
|
case .right:
|
||||||
return self.rightTailPath(in: rect, radius: cornerRadius)
|
return self.rightTailPath(in: rect, radius: self.cornerRadius)
|
||||||
case .none:
|
case .none:
|
||||||
return Path(roundedRect: rect, cornerRadius: cornerRadius)
|
return Path(roundedRect: rect, cornerRadius: self.cornerRadius)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func rightTailPath(in rect: CGRect, radius r: CGFloat) -> Path {
|
private func rightTailPath(in rect: CGRect, radius r: CGFloat) -> Path {
|
||||||
var path = Path()
|
var path = Path()
|
||||||
let bubbleMinX = rect.minX
|
let bubbleMinX = rect.minX
|
||||||
let bubbleMaxX = rect.maxX - tailWidth
|
let bubbleMaxX = rect.maxX - self.tailWidth
|
||||||
let bubbleMinY = rect.minY
|
let bubbleMinY = rect.minY
|
||||||
let bubbleMaxY = rect.maxY
|
let bubbleMaxY = rect.maxY
|
||||||
|
|
||||||
|
|
@ -53,7 +53,7 @@ private struct ChatBubbleShape: InsettableShape {
|
||||||
|
|
||||||
let baseTop = CGPoint(x: bubbleMaxX, y: baseTopY)
|
let baseTop = CGPoint(x: bubbleMaxX, y: baseTopY)
|
||||||
let baseBottom = CGPoint(x: bubbleMaxX, y: baseBottomY)
|
let baseBottom = CGPoint(x: bubbleMaxX, y: baseBottomY)
|
||||||
let tip = CGPoint(x: bubbleMaxX + tailWidth, y: midY)
|
let tip = CGPoint(x: bubbleMaxX + self.tailWidth, y: midY)
|
||||||
|
|
||||||
path.move(to: CGPoint(x: bubbleMinX + r, y: bubbleMinY))
|
path.move(to: CGPoint(x: bubbleMinX + r, y: bubbleMinY))
|
||||||
path.addLine(to: CGPoint(x: bubbleMaxX - r, y: bubbleMinY))
|
path.addLine(to: CGPoint(x: bubbleMaxX - r, y: bubbleMinY))
|
||||||
|
|
@ -63,12 +63,12 @@ private struct ChatBubbleShape: InsettableShape {
|
||||||
path.addLine(to: baseTop)
|
path.addLine(to: baseTop)
|
||||||
path.addCurve(
|
path.addCurve(
|
||||||
to: tip,
|
to: tip,
|
||||||
control1: CGPoint(x: bubbleMaxX + tailWidth * 0.2, y: baseTopY + baseH * 0.05),
|
control1: CGPoint(x: bubbleMaxX + self.tailWidth * 0.2, y: baseTopY + baseH * 0.05),
|
||||||
control2: CGPoint(x: bubbleMaxX + tailWidth * 0.95, y: midY - baseH * 0.15))
|
control2: CGPoint(x: bubbleMaxX + self.tailWidth * 0.95, y: midY - baseH * 0.15))
|
||||||
path.addCurve(
|
path.addCurve(
|
||||||
to: baseBottom,
|
to: baseBottom,
|
||||||
control1: CGPoint(x: bubbleMaxX + tailWidth * 0.95, y: midY + baseH * 0.15),
|
control1: CGPoint(x: bubbleMaxX + self.tailWidth * 0.95, y: midY + baseH * 0.15),
|
||||||
control2: CGPoint(x: bubbleMaxX + tailWidth * 0.2, y: baseBottomY - baseH * 0.05))
|
control2: CGPoint(x: bubbleMaxX + self.tailWidth * 0.2, y: baseBottomY - baseH * 0.05))
|
||||||
path.addQuadCurve(
|
path.addQuadCurve(
|
||||||
to: CGPoint(x: bubbleMaxX - r, y: bubbleMaxY),
|
to: CGPoint(x: bubbleMaxX - r, y: bubbleMaxY),
|
||||||
control: CGPoint(x: bubbleMaxX, y: bubbleMaxY))
|
control: CGPoint(x: bubbleMaxX, y: bubbleMaxY))
|
||||||
|
|
@ -86,7 +86,7 @@ private struct ChatBubbleShape: InsettableShape {
|
||||||
|
|
||||||
private func leftTailPath(in rect: CGRect, radius r: CGFloat) -> Path {
|
private func leftTailPath(in rect: CGRect, radius r: CGFloat) -> Path {
|
||||||
var path = Path()
|
var path = Path()
|
||||||
let bubbleMinX = rect.minX + tailWidth
|
let bubbleMinX = rect.minX + self.tailWidth
|
||||||
let bubbleMaxX = rect.maxX
|
let bubbleMaxX = rect.maxX
|
||||||
let bubbleMinY = rect.minY
|
let bubbleMinY = rect.minY
|
||||||
let bubbleMaxY = rect.maxY
|
let bubbleMaxY = rect.maxY
|
||||||
|
|
@ -99,7 +99,7 @@ private struct ChatBubbleShape: InsettableShape {
|
||||||
|
|
||||||
let baseTop = CGPoint(x: bubbleMinX, y: baseTopY)
|
let baseTop = CGPoint(x: bubbleMinX, y: baseTopY)
|
||||||
let baseBottom = CGPoint(x: bubbleMinX, y: baseBottomY)
|
let baseBottom = CGPoint(x: bubbleMinX, y: baseBottomY)
|
||||||
let tip = CGPoint(x: bubbleMinX - tailWidth, y: midY)
|
let tip = CGPoint(x: bubbleMinX - self.tailWidth, y: midY)
|
||||||
|
|
||||||
path.move(to: CGPoint(x: bubbleMinX + r, y: bubbleMinY))
|
path.move(to: CGPoint(x: bubbleMinX + r, y: bubbleMinY))
|
||||||
path.addLine(to: CGPoint(x: bubbleMaxX - r, y: bubbleMinY))
|
path.addLine(to: CGPoint(x: bubbleMaxX - r, y: bubbleMinY))
|
||||||
|
|
@ -117,12 +117,12 @@ private struct ChatBubbleShape: InsettableShape {
|
||||||
path.addLine(to: baseBottom)
|
path.addLine(to: baseBottom)
|
||||||
path.addCurve(
|
path.addCurve(
|
||||||
to: tip,
|
to: tip,
|
||||||
control1: CGPoint(x: bubbleMinX - tailWidth * 0.2, y: baseBottomY - baseH * 0.05),
|
control1: CGPoint(x: bubbleMinX - self.tailWidth * 0.2, y: baseBottomY - baseH * 0.05),
|
||||||
control2: CGPoint(x: bubbleMinX - tailWidth * 0.95, y: midY + baseH * 0.15))
|
control2: CGPoint(x: bubbleMinX - self.tailWidth * 0.95, y: midY + baseH * 0.15))
|
||||||
path.addCurve(
|
path.addCurve(
|
||||||
to: baseTop,
|
to: baseTop,
|
||||||
control1: CGPoint(x: bubbleMinX - tailWidth * 0.95, y: midY - baseH * 0.15),
|
control1: CGPoint(x: bubbleMinX - self.tailWidth * 0.95, y: midY - baseH * 0.15),
|
||||||
control2: CGPoint(x: bubbleMinX - tailWidth * 0.2, y: baseTopY + baseH * 0.05))
|
control2: CGPoint(x: bubbleMinX - self.tailWidth * 0.2, y: baseTopY + baseH * 0.05))
|
||||||
path.addLine(to: CGPoint(x: bubbleMinX, y: bubbleMinY + r))
|
path.addLine(to: CGPoint(x: bubbleMinX, y: bubbleMinY + r))
|
||||||
path.addQuadCurve(
|
path.addQuadCurve(
|
||||||
to: CGPoint(x: bubbleMinX + r, y: bubbleMinY),
|
to: CGPoint(x: bubbleMinX + r, y: bubbleMinY),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue