diff --git a/.gitignore b/.gitignore index 75d1780..8ca88d6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,15 @@ -build -xcuserdata +# Xcode +xcuserdata/ +*.xcodeproj/ +*.xcworkspace/ + +# Swift Package Manager +.swiftpm/ +.build/ +Package.resolved + +# macOS +.DS_Store + +# Claude scratchpad +claude-scratchpad/ diff --git a/FileOtter.xcodeproj/project.pbxproj b/FileOtter.xcodeproj/project.pbxproj deleted file mode 100644 index a459b83..0000000 --- a/FileOtter.xcodeproj/project.pbxproj +++ /dev/null @@ -1,502 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 70; - objects = { - -/* Begin PBXBuildFile section */ - 7B5064BF2BD9F236009CEFF9 /* FileOtter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B5064B42BD9F236009CEFF9 /* FileOtter.framework */; }; - 7B5064CF2BD9F2C0009CEFF9 /* Readme.md in Resources */ = {isa = PBXBuildFile; fileRef = 7B5064CE2BD9F2C0009CEFF9 /* Readme.md */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 7B5064C02BD9F236009CEFF9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 7B5064AB2BD9F235009CEFF9 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7B5064B32BD9F235009CEFF9; - remoteInfo = FileOtter; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 7B5064B42BD9F236009CEFF9 /* FileOtter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FileOtter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B5064BE2BD9F236009CEFF9 /* FileOtterTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FileOtterTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B5064CE2BD9F2C0009CEFF9 /* Readme.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = Readme.md; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 7B1B74752E5E097B008EDC0E /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - publicHeaders = ( - FileOtter.h, - ); - target = 7B5064B32BD9F235009CEFF9 /* FileOtter */; - }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ - -/* Begin PBXFileSystemSynchronizedRootGroup section */ - 7B1B74612E5E0978008EDC0E /* FileOtterTests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = FileOtterTests; sourceTree = ""; }; - 7B1B746F2E5E097B008EDC0E /* FileOtter */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (7B1B74752E5E097B008EDC0E /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = FileOtter; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7B5064B12BD9F235009CEFF9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7B5064BB2BD9F236009CEFF9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7B5064BF2BD9F236009CEFF9 /* FileOtter.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 7B5064AA2BD9F235009CEFF9 = { - isa = PBXGroup; - children = ( - 7B5064CE2BD9F2C0009CEFF9 /* Readme.md */, - 7B1B746F2E5E097B008EDC0E /* FileOtter */, - 7B1B74612E5E0978008EDC0E /* FileOtterTests */, - 7B5064B52BD9F236009CEFF9 /* Products */, - ); - sourceTree = ""; - }; - 7B5064B52BD9F236009CEFF9 /* Products */ = { - isa = PBXGroup; - children = ( - 7B5064B42BD9F236009CEFF9 /* FileOtter.framework */, - 7B5064BE2BD9F236009CEFF9 /* FileOtterTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 7B5064AF2BD9F235009CEFF9 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 7B5064B32BD9F235009CEFF9 /* FileOtter */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7B5064C82BD9F236009CEFF9 /* Build configuration list for PBXNativeTarget "FileOtter" */; - buildPhases = ( - 7B5064AF2BD9F235009CEFF9 /* Headers */, - 7B5064B02BD9F235009CEFF9 /* Sources */, - 7B5064B12BD9F235009CEFF9 /* Frameworks */, - 7B5064B22BD9F235009CEFF9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - fileSystemSynchronizedGroups = ( - 7B1B746F2E5E097B008EDC0E /* FileOtter */, - ); - name = FileOtter; - productName = FileOtter; - productReference = 7B5064B42BD9F236009CEFF9 /* FileOtter.framework */; - productType = "com.apple.product-type.framework"; - }; - 7B5064BD2BD9F236009CEFF9 /* FileOtterTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7B5064CB2BD9F236009CEFF9 /* Build configuration list for PBXNativeTarget "FileOtterTests" */; - buildPhases = ( - 7B5064BA2BD9F236009CEFF9 /* Sources */, - 7B5064BB2BD9F236009CEFF9 /* Frameworks */, - 7B5064BC2BD9F236009CEFF9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 7B5064C12BD9F236009CEFF9 /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - 7B1B74612E5E0978008EDC0E /* FileOtterTests */, - ); - name = FileOtterTests; - productName = FileOtterTests; - productReference = 7B5064BE2BD9F236009CEFF9 /* FileOtterTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7B5064AB2BD9F235009CEFF9 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 1530; - LastUpgradeCheck = 1640; - TargetAttributes = { - 7B5064B32BD9F235009CEFF9 = { - CreatedOnToolsVersion = 15.3; - }; - 7B5064BD2BD9F236009CEFF9 = { - CreatedOnToolsVersion = 15.3; - }; - }; - }; - buildConfigurationList = 7B5064AE2BD9F235009CEFF9 /* Build configuration list for PBXProject "FileOtter" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7B5064AA2BD9F235009CEFF9; - productRefGroup = 7B5064B52BD9F236009CEFF9 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7B5064B32BD9F235009CEFF9 /* FileOtter */, - 7B5064BD2BD9F236009CEFF9 /* FileOtterTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7B5064B22BD9F235009CEFF9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7B5064CF2BD9F2C0009CEFF9 /* Readme.md in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7B5064BC2BD9F236009CEFF9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7B5064B02BD9F235009CEFF9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7B5064BA2BD9F236009CEFF9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 7B5064C12BD9F236009CEFF9 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 7B5064B32BD9F235009CEFF9 /* FileOtter */; - targetProxy = 7B5064C02BD9F236009CEFF9 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 7B5064C62BD9F236009CEFF9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = X45WPY5JFZ; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 7B5064C72BD9F236009CEFF9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = X45WPY5JFZ; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SWIFT_COMPILATION_MODE = wholemodule; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 7B5064C92BD9F236009CEFF9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - BUILD_LIBRARY_FOR_DISTRIBUTION = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.6; - LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.5; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - PRODUCT_BUNDLE_IDENTIFIER = ca.gurulogic.FileOtter; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = auto; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INSTALL_OBJC_HEADER = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7B5064CA2BD9F236009CEFF9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - BUILD_LIBRARY_FOR_DISTRIBUTION = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 17.6; - LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.5; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - PRODUCT_BUNDLE_IDENTIFIER = ca.gurulogic.FileOtter; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = auto; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INSTALL_OBJC_HEADER = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 7B5064CC2BD9F236009CEFF9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.4; - MACOSX_DEPLOYMENT_TARGET = 14.4; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = ca.gurulogic.FileOtterTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7B5064CD2BD9F236009CEFF9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.4; - MACOSX_DEPLOYMENT_TARGET = 14.4; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = ca.gurulogic.FileOtterTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7B5064AE2BD9F235009CEFF9 /* Build configuration list for PBXProject "FileOtter" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B5064C62BD9F236009CEFF9 /* Debug */, - 7B5064C72BD9F236009CEFF9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7B5064C82BD9F236009CEFF9 /* Build configuration list for PBXNativeTarget "FileOtter" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B5064C92BD9F236009CEFF9 /* Debug */, - 7B5064CA2BD9F236009CEFF9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7B5064CB2BD9F236009CEFF9 /* Build configuration list for PBXNativeTarget "FileOtterTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B5064CC2BD9F236009CEFF9 /* Debug */, - 7B5064CD2BD9F236009CEFF9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7B5064AB2BD9F235009CEFF9 /* Project object */; -} diff --git a/FileOtter.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/FileOtter.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a..0000000 --- a/FileOtter.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/FileOtter.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/FileOtter.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/FileOtter.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/FileOtter/FileOtter.docc/FileOtter.md b/FileOtter/FileOtter.docc/FileOtter.md deleted file mode 100755 index aaf0859..0000000 --- a/FileOtter/FileOtter.docc/FileOtter.md +++ /dev/null @@ -1,13 +0,0 @@ -# ``FileOtter`` - -Summary - -## Overview - -Text - -## Topics - -### Group - -- ``Symbol`` \ No newline at end of file diff --git a/FileOtter/FileOtter.h b/FileOtter/FileOtter.h deleted file mode 100644 index a66f259..0000000 --- a/FileOtter/FileOtter.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// FileOtter.h -// FileOtter -// -// Created by Sami Samhuri on 2024-04-24. -// - -#import - -//! Project version number for FileOtter. -FOUNDATION_EXPORT double FileOtterVersionNumber; - -//! Project version string for FileOtter. -FOUNDATION_EXPORT const unsigned char FileOtterVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..d7f5b2b --- /dev/null +++ b/Package.swift @@ -0,0 +1,22 @@ +// swift-tools-version: 6.1 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "FileOtter", + platforms: [ + .macOS(.v13), + .iOS(.v13), + .tvOS(.v13), + .watchOS(.v6), + .macCatalyst(.v13), + ], + products: [ + .library(name: "FileOtter", targets: ["FileOtter"]), + ], + targets: [ + .target(name: "FileOtter"), + .testTarget(name: "FileOtterTests", dependencies: ["FileOtter"]), + ] +) diff --git a/FileOtter/Dir.swift b/Sources/FileOtter/Dir.swift similarity index 100% rename from FileOtter/Dir.swift rename to Sources/FileOtter/Dir.swift diff --git a/FileOtter/File.swift b/Sources/FileOtter/File.swift similarity index 99% rename from FileOtter/File.swift rename to Sources/FileOtter/File.swift index dcedc1d..e3199b6 100644 --- a/FileOtter/File.swift +++ b/Sources/FileOtter/File.swift @@ -620,7 +620,7 @@ public struct FileStat { public let birthtime: Date? // Creation time (if available) } -public struct FnmatchFlags: OptionSet { +public struct FnmatchFlags: OptionSet, Sendable { public let rawValue: Int32 public init(rawValue: Int32) { diff --git a/FileOtter/Glob.swift b/Sources/FileOtter/Glob.swift similarity index 100% rename from FileOtter/Glob.swift rename to Sources/FileOtter/Glob.swift diff --git a/FileOtterTests/DirTests.swift b/Tests/FileOtterTests/DirTests.swift similarity index 100% rename from FileOtterTests/DirTests.swift rename to Tests/FileOtterTests/DirTests.swift diff --git a/FileOtterTests/FileFnmatchTests.swift b/Tests/FileOtterTests/FileFnmatchTests.swift similarity index 100% rename from FileOtterTests/FileFnmatchTests.swift rename to Tests/FileOtterTests/FileFnmatchTests.swift diff --git a/FileOtterTests/FileInfoTests.swift b/Tests/FileOtterTests/FileInfoTests.swift similarity index 100% rename from FileOtterTests/FileInfoTests.swift rename to Tests/FileOtterTests/FileInfoTests.swift diff --git a/FileOtterTests/FileOpenTests.swift b/Tests/FileOtterTests/FileOpenTests.swift similarity index 100% rename from FileOtterTests/FileOpenTests.swift rename to Tests/FileOtterTests/FileOpenTests.swift diff --git a/FileOtterTests/FileOperationTests.swift b/Tests/FileOtterTests/FileOperationTests.swift similarity index 100% rename from FileOtterTests/FileOperationTests.swift rename to Tests/FileOtterTests/FileOperationTests.swift diff --git a/FileOtterTests/FilePathTests.swift b/Tests/FileOtterTests/FilePathTests.swift similarity index 100% rename from FileOtterTests/FilePathTests.swift rename to Tests/FileOtterTests/FilePathTests.swift diff --git a/FileOtterTests/FilePermissionTests.swift b/Tests/FileOtterTests/FilePermissionTests.swift similarity index 100% rename from FileOtterTests/FilePermissionTests.swift rename to Tests/FileOtterTests/FilePermissionTests.swift diff --git a/FileOtterTests/FileTypeTests.swift b/Tests/FileOtterTests/FileTypeTests.swift similarity index 100% rename from FileOtterTests/FileTypeTests.swift rename to Tests/FileOtterTests/FileTypeTests.swift