From 1e5c37528f54dfe0d8b878d58f51f1114a4c73a2 Mon Sep 17 00:00:00 2001 From: Yoshimasa Niwa Date: Mon, 27 Jul 2020 19:07:27 -0700 Subject: [PATCH 1/2] FIX: swift-doc creates file and directory with unexpected permission **Problem** swift-doc creates file with execution bit, also creates directory without execution bit. **Solution** Remove unexpected permission attributes given to the `FileManager` and let them to use file system defaults. --- Sources/swift-doc/Subcommands/Generate.swift | 2 +- Sources/swift-doc/Supporting Types/Page.swift | 6 +----- Sources/swift-doc/main.swift | 1 - Tests/SwiftDocTests/Helpers/temporaryFile.swift | 2 +- 4 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Sources/swift-doc/Subcommands/Generate.swift b/Sources/swift-doc/Subcommands/Generate.swift index 07c9f684..9c067528 100644 --- a/Sources/swift-doc/Subcommands/Generate.swift +++ b/Sources/swift-doc/Subcommands/Generate.swift @@ -50,7 +50,7 @@ extension SwiftDoc { let baseURL = options.baseURL let outputDirectoryURL = URL(fileURLWithPath: options.output) - try fileManager.createDirectory(at: outputDirectoryURL, withIntermediateDirectories: true, attributes: fileAttributes) + try fileManager.createDirectory(at: outputDirectoryURL, withIntermediateDirectories: true) do { let format = options.format diff --git a/Sources/swift-doc/Supporting Types/Page.swift b/Sources/swift-doc/Supporting Types/Page.swift index ece11da3..7e4886c2 100644 --- a/Sources/swift-doc/Supporting Types/Page.swift +++ b/Sources/swift-doc/Supporting Types/Page.swift @@ -35,12 +35,8 @@ extension Page { } } - - func writeFile(_ data: Data, to url: URL) throws { let fileManager = FileManager.default - try fileManager.createDirectory(at: url.deletingLastPathComponent(), withIntermediateDirectories: true, attributes: [.posixPermissions: 0o744]) - + try fileManager.createDirectory(at: url.deletingLastPathComponent(), withIntermediateDirectories: true) try data.write(to: url) - try fileManager.setAttributes([.posixPermissions: 0o744], ofItemAtPath: url.path) } diff --git a/Sources/swift-doc/main.swift b/Sources/swift-doc/main.swift index b9ac8fb7..da386a95 100644 --- a/Sources/swift-doc/main.swift +++ b/Sources/swift-doc/main.swift @@ -14,7 +14,6 @@ LoggingSystem.bootstrap { label in let logger = Logger(label: "org.swiftdoc.swift-doc") let fileManager = FileManager.default -let fileAttributes: [FileAttributeKey : Any] = [.posixPermissions: 0o744] var standardOutput = FileHandle.standardOutput var standardError = FileHandle.standardError diff --git a/Tests/SwiftDocTests/Helpers/temporaryFile.swift b/Tests/SwiftDocTests/Helpers/temporaryFile.swift index 453910bb..7618540e 100644 --- a/Tests/SwiftDocTests/Helpers/temporaryFile.swift +++ b/Tests/SwiftDocTests/Helpers/temporaryFile.swift @@ -2,7 +2,7 @@ import Foundation func temporaryFile(path: String? = nil, contents: String) throws -> URL { let temporaryDirectoryURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(ProcessInfo.processInfo.globallyUniqueString) - try FileManager.default.createDirectory(at: temporaryDirectoryURL, withIntermediateDirectories: true, attributes: [.posixPermissions: 0o766]) + try FileManager.default.createDirectory(at: temporaryDirectoryURL, withIntermediateDirectories: true) let path = path ?? ProcessInfo.processInfo.globallyUniqueString let temporaryFileURL = temporaryDirectoryURL.appendingPathComponent(path) From 2dc1c7a22239a2a82400e54e6482bc8de58e655a Mon Sep 17 00:00:00 2001 From: Yoshimasa Niwa Date: Tue, 28 Jul 2020 10:10:21 -0700 Subject: [PATCH 2/2] Update changelog. --- Changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Changelog.md b/Changelog.md index e4f73cd9..647227cf 100644 --- a/Changelog.md +++ b/Changelog.md @@ -31,6 +31,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 #131 by @MattKiazyk. - Fixed display of bullet list items in documentation discussion parts. #130 by @mattt. +- Fixed file and directory unexpected permissions. + #146 by @niw. ## [1.0.0-beta.3] - 2020-05-19