Skip to content

Commit 3880363

Browse files
committed
fixed warnings and linux support
1 parent 6e99638 commit 3880363

File tree

4 files changed

+54
-2
lines changed

4 files changed

+54
-2
lines changed

Example/main.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import Swifter
2+
import Dispatch
3+
4+
let server = HttpServer()
5+
server["/"] = scopes {
6+
html {
7+
body {
8+
center {
9+
img { src = "https://swift.org/assets/images/swift.svg" }
10+
}
11+
}
12+
}
13+
}
14+
server["/files/:path"] = directoryBrowser("/")
15+
16+
let semaphore = DispatchSemaphore(value: 0)
17+
do {
18+
try server.start(9080, forceIPv4: true)
19+
print("Server has started ( port = \(try server.port()) ). Try to connect now...")
20+
semaphore.wait()
21+
} catch {
22+
print("Server start error: \(error)")
23+
semaphore.signal()
24+
}

Package.swift

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
1+
// swift-tools-version:4.0
2+
13
import PackageDescription
24

35
let package = Package(
4-
name: "Swifter"
6+
name: "Swifter",
7+
products: [
8+
.library(
9+
name: "Swifter",
10+
targets: ["Swifter"]),
11+
.executable(
12+
name: "Example",
13+
targets: ["Example"])
14+
],
15+
dependencies: [],
16+
targets: [
17+
.target(
18+
name: "Swifter",
19+
dependencies: [],
20+
path: "./Sources"),
21+
.target(
22+
name: "Example",
23+
dependencies: ["Swifter"],
24+
path: "./Example"),
25+
]
526
)

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,8 @@ let package = Package(
8383
)
8484
```
8585

86+
### Docker.
87+
```
88+
docker run -d -p 9080:9080 -v `pwd`:/Swifter -w /Swifter --name Swifter swift bash -c "swift run"
89+
```
90+

Sources/String+File.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,9 @@ extension String {
115115
var name = ent.pointee.d_name
116116
let fileName = withUnsafePointer(to: &name) { (ptr) -> String? in
117117
#if os(Linux)
118-
return String(validatingUTF8: [CChar](UnsafeBufferPointer<CChar>(start: UnsafePointer(unsafeBitCast(ptr, to: UnsafePointer<CChar>.self)), count: 256)))
118+
return String(validatingUTF8: ptr.withMemoryRebound(to: CChar.self, capacity: Int(ent.pointee.d_reclen), { (ptrc) -> [CChar] in
119+
return [CChar](UnsafeBufferPointer(start: ptrc, count: 256))
120+
}))
119121
#else
120122
var buffer = ptr.withMemoryRebound(to: CChar.self, capacity: Int(ent.pointee.d_reclen), { (ptrc) -> [CChar] in
121123
return [CChar](UnsafeBufferPointer(start: ptrc, count: Int(ent.pointee.d_namlen)))

0 commit comments

Comments
 (0)