Skip to content
This repository was archived by the owner on Oct 17, 2021. It is now read-only.

Commit eacbd11

Browse files
committed
Initial import
0 parents  commit eacbd11

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+2359
-0
lines changed

Diff for: .dockerignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.build/
2+
.swiftpm/

Diff for: .gitignore

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Packages
2+
.build
3+
xcuserdata
4+
*.xcodeproj
5+
DerivedData/
6+
.DS_Store
7+
db.sqlite
8+
.swiftpm
9+

Diff for: .gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "Index"]
2+
path = Index
3+
url = [email protected]:mattt/packages.git

Diff for: Brewfile

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
brew 'libgit2'

Diff for: Brewfile.lock.json

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"entries": {
3+
"brew": {
4+
"libgit2": {
5+
"version": "1.0.1",
6+
"bottle": {
7+
"cellar": ":any",
8+
"prefix": "/usr/local",
9+
"files": {
10+
"catalina": {
11+
"url": "https://homebrew.bintray.com/bottles/libgit2-1.0.1.catalina.bottle.tar.gz",
12+
"sha256": "e6456b9dde3c5ed975cc6a106e721ce63a84e37e71762889c360920c999f2b12"
13+
},
14+
"mojave": {
15+
"url": "https://homebrew.bintray.com/bottles/libgit2-1.0.1.mojave.bottle.tar.gz",
16+
"sha256": "2187f1fd84786573d62180909d1f319c58700fa6fe662a2de93092dbde76bd16"
17+
},
18+
"high_sierra": {
19+
"url": "https://homebrew.bintray.com/bottles/libgit2-1.0.1.high_sierra.bottle.tar.gz",
20+
"sha256": "c7c5dbf3884b241c0350404858ba4f63d640921bee6ff8142c2e214533e42761"
21+
}
22+
}
23+
}
24+
}
25+
}
26+
},
27+
"system": {
28+
"macos": {
29+
"catalina": {
30+
"HOMEBREW_VERSION": "2.4.13",
31+
"HOMEBREW_PREFIX": "/usr/local",
32+
"Homebrew/homebrew-core": "2e7c561527ff7550d710794ecdba32534dd76936",
33+
"CLT": "",
34+
"Xcode": "11.6",
35+
"macOS": "10.15.6"
36+
}
37+
}
38+
}
39+
}

Diff for: Dockerfile

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# ================================
2+
# Build image
3+
# ================================
4+
FROM swift:5.2-focal as build
5+
6+
# Install OS updates and, if needed, sqlite3
7+
RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \
8+
&& apt-get -q update \
9+
&& apt-get -q dist-upgrade -y \
10+
&& rm -rf /var/lib/apt/lists/*
11+
12+
# Set up a build area
13+
WORKDIR /build
14+
15+
# First just resolve dependencies.
16+
# This creates a cached layer that can be reused
17+
# as long as your Package.swift/Package.resolved
18+
# files do not change.
19+
COPY ./Package.* ./
20+
RUN swift package resolve
21+
22+
# Copy entire repo into container
23+
COPY . .
24+
25+
# Build everything, with optimizations and test discovery
26+
RUN swift build --enable-test-discovery -c release
27+
28+
# Switch to the staging area
29+
WORKDIR /staging
30+
31+
# Copy main executable to staging area
32+
RUN cp "$(swift build --package-path /build -c release --show-bin-path)/Run" ./
33+
34+
# Uncomment the next line if you need to load resources from the `Public` directory.
35+
# Ensure that by default, neither the directory nor any of its contents are writable.
36+
#RUN mv /build/Public ./Public && chmod -R a-w ./Public
37+
38+
# ================================
39+
# Run image
40+
# ================================
41+
FROM swift:5.2-focal-slim
42+
43+
# Make sure all system packages are up to date.
44+
RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && \
45+
apt-get -q update && apt-get -q dist-upgrade -y && rm -r /var/lib/apt/lists/*
46+
47+
# Create a vapor user and group with /app as its home directory
48+
RUN useradd --user-group --create-home --system --skel /dev/null --home-dir /app vapor
49+
50+
# Switch to the new home directory
51+
WORKDIR /app
52+
53+
# Copy built executable and any staged resources from builder
54+
COPY --from=build --chown=vapor:vapor /staging /app
55+
56+
# Ensure all further commands run as the vapor user
57+
USER vapor:vapor
58+
59+
# Let Docker bind to port 8080
60+
EXPOSE 8080
61+
62+
# Start the Vapor service when the image is run, default to listening on 8080 in production environment
63+
ENTRYPOINT ["./Run"]
64+
CMD ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "8080"]

Diff for: Package.resolved

+214
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
{
2+
"object": {
3+
"pins": [
4+
{
5+
"package": "AnyCodable",
6+
"repositoryURL": "https://github.com/Flight-School/AnyCodable.git",
7+
"state": {
8+
"branch": null,
9+
"revision": "79b05a5da89557a4fa50647cc92488a3d9c3f478",
10+
"version": "0.3.0"
11+
}
12+
},
13+
{
14+
"package": "async-http-client",
15+
"repositoryURL": "https://github.com/swift-server/async-http-client.git",
16+
"state": {
17+
"branch": null,
18+
"revision": "c9a9bf061d713c91ee9974fa8a6afe413acfd0e9",
19+
"version": "1.2.0"
20+
}
21+
},
22+
{
23+
"package": "async-kit",
24+
"repositoryURL": "https://github.com/vapor/async-kit.git",
25+
"state": {
26+
"branch": null,
27+
"revision": "7457413e57dbfac762b32dd30c1caf2c55a02a3d",
28+
"version": "1.2.0"
29+
}
30+
},
31+
{
32+
"package": "console-kit",
33+
"repositoryURL": "https://github.com/vapor/console-kit.git",
34+
"state": {
35+
"branch": null,
36+
"revision": "7cf8185ad62d50ae9777ce78bcfde8f5c9f900e2",
37+
"version": "4.2.1"
38+
}
39+
},
40+
{
41+
"package": "Git",
42+
"repositoryURL": "https://github.com/SwiftDocOrg/Git.git",
43+
"state": {
44+
"branch": null,
45+
"revision": "f3b37c3ccf0a1559d4097e2eeb883801c4b8f510",
46+
"version": null
47+
}
48+
},
49+
{
50+
"package": "queues",
51+
"repositoryURL": "https://github.com/vapor/queues.git",
52+
"state": {
53+
"branch": null,
54+
"revision": "649737c904b20d14bfbfaf35e38a3a106ddf75e3",
55+
"version": "1.4.0"
56+
}
57+
},
58+
{
59+
"package": "queues-redis-driver",
60+
"repositoryURL": "https://github.com/vapor/queues-redis-driver.git",
61+
"state": {
62+
"branch": null,
63+
"revision": "2212b5daf46a35de6da1ea91af2e0cc927247ccb",
64+
"version": "1.0.0-rc.3"
65+
}
66+
},
67+
{
68+
"package": "redis-kit",
69+
"repositoryURL": "https://github.com/vapor/redis-kit.git",
70+
"state": {
71+
"branch": null,
72+
"revision": "9ef8f9dc472d022c4e94e5388ccf3c87ad83e2cb",
73+
"version": "1.0.0-beta.5"
74+
}
75+
},
76+
{
77+
"package": "RediStack",
78+
"repositoryURL": "https://gitlab.com/mordil/RediStack.git",
79+
"state": {
80+
"branch": null,
81+
"revision": "8b75ef7f0e3cb82c69f2e2b47ea8f49e7d4e2ca9",
82+
"version": "1.0.0-alpha.10"
83+
}
84+
},
85+
{
86+
"package": "routing-kit",
87+
"repositoryURL": "https://github.com/vapor/routing-kit.git",
88+
"state": {
89+
"branch": null,
90+
"revision": "4cf052b78aebaf1b23f2264ce04d57b4b6eb5254",
91+
"version": "4.2.0"
92+
}
93+
},
94+
{
95+
"package": "swift-argument-parser",
96+
"repositoryURL": "https://github.com/apple/swift-argument-parser.git",
97+
"state": {
98+
"branch": null,
99+
"revision": "3e7d2fe99da091dcc1e4a7dd22fc3cfc2dca7937",
100+
"version": "0.2.2"
101+
}
102+
},
103+
{
104+
"package": "swift-backtrace",
105+
"repositoryURL": "https://github.com/swift-server/swift-backtrace.git",
106+
"state": {
107+
"branch": null,
108+
"revision": "f2fd8c4845a123419c348e0bc4b3839c414077d5",
109+
"version": "1.2.0"
110+
}
111+
},
112+
{
113+
"package": "swift-crypto",
114+
"repositoryURL": "https://github.com/apple/swift-crypto.git",
115+
"state": {
116+
"branch": null,
117+
"revision": "9b9d1868601a199334da5d14f4ab2d37d4f8d0c5",
118+
"version": "1.0.2"
119+
}
120+
},
121+
{
122+
"package": "swift-log",
123+
"repositoryURL": "https://github.com/apple/swift-log.git",
124+
"state": {
125+
"branch": null,
126+
"revision": "173f567a2dfec11d74588eea82cecea555bdc0bc",
127+
"version": "1.4.0"
128+
}
129+
},
130+
{
131+
"package": "swift-metrics",
132+
"repositoryURL": "https://github.com/apple/swift-metrics.git",
133+
"state": {
134+
"branch": null,
135+
"revision": "708b960b4605abb20bc55d65abf6bad607252200",
136+
"version": "2.0.0"
137+
}
138+
},
139+
{
140+
"package": "swift-nio",
141+
"repositoryURL": "https://github.com/apple/swift-nio.git",
142+
"state": {
143+
"branch": null,
144+
"revision": "acf5465b5e7fb9aeda54a34d16fb44c31a399715",
145+
"version": "2.20.2"
146+
}
147+
},
148+
{
149+
"package": "swift-nio-extras",
150+
"repositoryURL": "https://github.com/apple/swift-nio-extras.git",
151+
"state": {
152+
"branch": null,
153+
"revision": "d525d3bbd1321fa928948065fd9a8dc109d5d45b",
154+
"version": "1.6.0"
155+
}
156+
},
157+
{
158+
"package": "swift-nio-http2",
159+
"repositoryURL": "https://github.com/apple/swift-nio-http2.git",
160+
"state": {
161+
"branch": null,
162+
"revision": "e9627350bdb85bde7e0dc69a29799e40961ced72",
163+
"version": "1.13.0"
164+
}
165+
},
166+
{
167+
"package": "swift-nio-ssl",
168+
"repositoryURL": "https://github.com/apple/swift-nio-ssl.git",
169+
"state": {
170+
"branch": null,
171+
"revision": "8a137b72a9339f295bc8bb95cd2fafe207f1df0d",
172+
"version": "2.9.0"
173+
}
174+
},
175+
{
176+
"package": "swift-nio-transport-services",
177+
"repositoryURL": "https://github.com/apple/swift-nio-transport-services.git",
178+
"state": {
179+
"branch": null,
180+
"revision": "d40a5e34e5b35f4f961cb34aeb2e0a02f42a945f",
181+
"version": "1.8.0"
182+
}
183+
},
184+
{
185+
"package": "vapor",
186+
"repositoryURL": "https://github.com/vapor/vapor.git",
187+
"state": {
188+
"branch": null,
189+
"revision": "c4861a4bf1a254280d402a66d4751d1a150e0ade",
190+
"version": "4.27.2"
191+
}
192+
},
193+
{
194+
"package": "websocket-kit",
195+
"repositoryURL": "https://github.com/vapor/websocket-kit.git",
196+
"state": {
197+
"branch": null,
198+
"revision": "b0736014be634475dac4c23843811257d86dcdc1",
199+
"version": "2.1.1"
200+
}
201+
},
202+
{
203+
"package": "ZIPFoundation",
204+
"repositoryURL": "https://github.com/weichsel/ZIPFoundation.git",
205+
"state": {
206+
"branch": null,
207+
"revision": "ec32d62d412578542c0ffb7a6ce34d3e64b43b94",
208+
"version": "0.9.11"
209+
}
210+
}
211+
]
212+
},
213+
"version": 1
214+
}

Diff for: Package.swift

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
// swift-tools-version:5.2
2+
import PackageDescription
3+
4+
let package = Package(
5+
name: "PackageRegistry",
6+
platforms: [
7+
.macOS(.v10_15)
8+
],
9+
dependencies: [
10+
.package(url: "https://github.com/vapor/vapor.git", from: "4.0.0"),
11+
.package(url: "https://github.com/vapor/queues-redis-driver.git", from: "1.0.0-rc.3"),
12+
.package(url: "https://github.com/SwiftDocOrg/Git.git", .revision("f3b37c3ccf0a1559d4097e2eeb883801c4b8f510")),
13+
.package(url: "https://github.com/weichsel/ZIPFoundation.git", .upToNextMinor(from: "0.9.0")),
14+
.package(url: "https://github.com/apple/swift-argument-parser.git", .upToNextMinor(from: "0.2.2")),
15+
.package(url: "https://github.com/Flight-School/AnyCodable.git", .upToNextMinor(from: "0.3.0"))
16+
],
17+
targets: [
18+
.target(
19+
name: "PackageRegistry",
20+
dependencies: [
21+
.product(name: "Git", package: "Git"),
22+
.product(name: "ZIPFoundation", package: "ZIPFoundation"),
23+
.product(name: "AnyCodable", package: "AnyCodable")
24+
]),
25+
.target(
26+
name: "registry",
27+
dependencies: [
28+
.product(name: "ArgumentParser", package: "swift-argument-parser"),
29+
.product(name: "AnyCodable", package: "AnyCodable"),
30+
.target(name: "PackageRegistry"),
31+
.target(name: "Server")
32+
],
33+
path: "Sources/CLI"),
34+
.target(
35+
name: "Server",
36+
dependencies: [
37+
.product(name: "Vapor", package: "vapor"),
38+
.product(name: "QueuesRedisDriver", package: "queues-redis-driver"),
39+
.product(name: "AnyCodable", package: "AnyCodable"),
40+
.target(name: "PackageRegistry")
41+
],
42+
swiftSettings: [
43+
// Enable better optimizations when building in Release configuration. Despite the use of
44+
// the `.unsafeFlags` construct required by SwiftPM, this flag is recommended for Release
45+
// builds. See <https://github.com/swift-server/guides#building-for-production> for details.
46+
.unsafeFlags(["-cross-module-optimization"], .when(configuration: .release))
47+
]
48+
),
49+
.testTarget(name: "ServerTests", dependencies: [
50+
.target(name: "Server"),
51+
.product(name: "XCTVapor", package: "vapor"),
52+
.product(name: "ZIPFoundation", package: "ZIPFoundation"),
53+
]),
54+
.testTarget(name: "PackageRegistryTests", dependencies: [
55+
.target(name: "PackageRegistry"),
56+
.product(name: "AnyCodable", package: "AnyCodable")
57+
])
58+
]
59+
)

0 commit comments

Comments
 (0)