Set up initial database schema if needed
This commit is contained in:
parent
c6c1cda39c
commit
6486db2796
|
@ -46,6 +46,8 @@ class InstallCACommandRunner {
|
||||||
let connection = try trustStore.open()
|
let connection = try trustStore.open()
|
||||||
reporter.info("Opened trust store.")
|
reporter.info("Opened trust store.")
|
||||||
|
|
||||||
|
try connection.setupDatabaseIfNeeded(reporter: reporter)
|
||||||
|
|
||||||
if try connection.hasCertificate(with: sha1) {
|
if try connection.hasCertificate(with: sha1) {
|
||||||
if options.dryRun {
|
if options.dryRun {
|
||||||
print("Would skip installing '\(certificateName)' into '\(device.name)' – it's already there.")
|
print("Would skip installing '\(certificateName)' into '\(device.name)' – it's already there.")
|
||||||
|
|
|
@ -25,7 +25,7 @@ struct TrustStore {
|
||||||
}
|
}
|
||||||
|
|
||||||
func open() throws -> Connection {
|
func open() throws -> Connection {
|
||||||
return try Connection(openingPath: path.pathString)
|
return try Connection(openingPath: path)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Connection {
|
class Connection {
|
||||||
|
@ -38,8 +38,28 @@ struct TrustStore {
|
||||||
private let tsetColumn = Expression<Blob?>("tset")
|
private let tsetColumn = Expression<Blob?>("tset")
|
||||||
private let dataColumn = Expression<Blob?>("data")
|
private let dataColumn = Expression<Blob?>("data")
|
||||||
|
|
||||||
fileprivate init(openingPath path: String) throws {
|
private let needsCreation: Bool
|
||||||
connection = try SQLite.Connection(path)
|
|
||||||
|
fileprivate init(openingPath path: AbsolutePath) throws {
|
||||||
|
needsCreation = !localFileSystem.exists(path)
|
||||||
|
connection = try SQLite.Connection(path.pathString)
|
||||||
|
}
|
||||||
|
|
||||||
|
func setupDatabaseIfNeeded(reporter: Reporter) throws {
|
||||||
|
guard needsCreation else { return }
|
||||||
|
try connection.execute("""
|
||||||
|
BEGIN TRANSACTION;
|
||||||
|
CREATE TABLE tsettings (
|
||||||
|
sha1 BLOB NOT NULL DEFAULT '',
|
||||||
|
subj BLOB NOT NULL DEFAULT '',
|
||||||
|
tset BLOB,
|
||||||
|
data BLOB,
|
||||||
|
PRIMARY KEY(sha1)
|
||||||
|
);
|
||||||
|
CREATE INDEX isubj ON tsettings(subj);
|
||||||
|
COMMIT TRANSACTION;
|
||||||
|
"""
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func isValid() -> Bool {
|
func isValid() -> Bool {
|
||||||
|
|
|
@ -29,22 +29,22 @@ echo "${LOGO} Installing root certificate"
|
||||||
CERT_PATH=`pwd`/test-ca.crt
|
CERT_PATH=`pwd`/test-ca.crt
|
||||||
pushd .. >& /dev/null
|
pushd .. >& /dev/null
|
||||||
echo swift run xcode-simulator-tool --verbosity=loud install-ca ${CERT_PATH} --uuid=${UUID}
|
echo swift run xcode-simulator-tool --verbosity=loud install-ca ${CERT_PATH} --uuid=${UUID}
|
||||||
echo Please do it yourself
|
swift run xcode-simulator-tool --verbosity=loud install-ca ${CERT_PATH} --uuid=${UUID}
|
||||||
zsh
|
|
||||||
popd >& /dev/null
|
popd >& /dev/null
|
||||||
|
|
||||||
# Booting
|
# Booting
|
||||||
|
|
||||||
echo "${LOGO} Booting simulator; exit subshell when it's done"
|
echo "${LOGO} Booting simulator; press enter when done"
|
||||||
xcrun simctl boot ${UUID}
|
xcrun simctl boot ${UUID}
|
||||||
open /Applications/Xcode-10.2.1.app/Contents/Developer/Applications/Simulator.app
|
open /Applications/Xcode-10.2.1.app/Contents/Developer/Applications/Simulator.app
|
||||||
zsh
|
read
|
||||||
|
|
||||||
# Opening the URL
|
# Opening the URL
|
||||||
|
|
||||||
echo "${LOGO} Opening ${URL} in simulator; exit subshell when it's done"
|
echo "${LOGO} Opening ${URL} in simulator. This should now show the contents of this directory in Safari."
|
||||||
|
echo "${LOGO} Press enter when done."
|
||||||
xcrun simctl openurl ${UUID} ${URL}
|
xcrun simctl openurl ${UUID} ${URL}
|
||||||
zsh
|
read
|
||||||
|
|
||||||
# Killing HTTP server
|
# Killing HTTP server
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue