import Vapor

public extension Environment {
    enum EnvironmentError: Error {
        case keyNotFound(key: String)
    }

    public static func get(_ key: String, _ fallback: String) -> String {
        return ProcessInfo.processInfo.environment[key] ?? fallback
    }

    public static func get(_ key: String) -> String? {
        return ProcessInfo.processInfo.environment[key]
    }
}

public func env(_ key: String, _ fallback: String) -> String {
    return Environment.get(key, fallback)
}

public func env(_ key: String) -> String? {
    return Environment.get(key)
}

public func assertEnv(_ key: String) throws -> String {
    guard let value = Environment.get(key) else {
        throw Environment.EnvironmentError.keyNotFound(key: key)
    }
    return value
}

import Vapor

public extension Environment {
    public static func get(_ key: String, _ fallback: String) -> String {
        return ProcessInfo.processInfo.environment[key] ?? fallback
    }
}

public func env(_ key: String, _ fallback: String) -> String {
    return Environment.get(key, fallback)
}

--- 
+++ 
@@ -1,11 +1,30 @@
 import Vapor
 
 public extension Environment {
+    enum EnvironmentError: Error {
+        case keyNotFound(key: String)
+    }
+
     public static func get(_ key: String, _ fallback: String) -> String {
         return ProcessInfo.processInfo.environment[key] ?? fallback
+    }
+
+    public static func get(_ key: String) -> String? {
+        return ProcessInfo.processInfo.environment[key]
     }
 }
 
 public func env(_ key: String, _ fallback: String) -> String {
     return Environment.get(key, fallback)
 }
+
+public func env(_ key: String) -> String? {
+    return Environment.get(key)
+}
+
+public func assertEnv(_ key: String) throws -> String {
+    guard let value = Environment.get(key) else {
+        throw Environment.EnvironmentError.keyNotFound(key: key)
+    }
+    return value
+}
Add more convenience for getting env variables
