Add config file
This commit is contained in:
parent
99192bccdd
commit
40a2391942
3 changed files with 26 additions and 5 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
**/zig-out
|
||||
**/zig-cache
|
||||
**.db
|
||||
/config.json
|
||||
|
|
|
@ -2,10 +2,10 @@ const std = @import("std");
|
|||
const util = @import("util");
|
||||
|
||||
const db = @import("./db.zig");
|
||||
|
||||
const models = @import("./db/models.zig");
|
||||
pub const DateTime = util.DateTime;
|
||||
pub const Uuid = util.Uuid;
|
||||
const Config = @import("./main.zig").Config;
|
||||
|
||||
const PwHash = std.crypto.pwhash.scrypt;
|
||||
const pw_hash_params = PwHash.Params.interactive;
|
||||
|
@ -101,13 +101,15 @@ pub fn initThreadPrng(seed: u64) void {
|
|||
pub const ApiSource = struct {
|
||||
db: db.Database,
|
||||
internal_alloc: std.mem.Allocator,
|
||||
config: Config,
|
||||
|
||||
pub const Conn = ApiConn(db.Database);
|
||||
|
||||
pub fn init(alloc: std.mem.Allocator) !ApiSource {
|
||||
pub fn init(alloc: std.mem.Allocator, cfg: Config) !ApiSource {
|
||||
return ApiSource{
|
||||
.db = try db.Database.init(),
|
||||
.internal_alloc = alloc,
|
||||
.config = cfg,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -34,11 +34,13 @@ const router = Router{
|
|||
pub const RequestServer = struct {
|
||||
alloc: std.mem.Allocator,
|
||||
api: api.ApiSource,
|
||||
config: Config,
|
||||
|
||||
fn init(alloc: std.mem.Allocator) !RequestServer {
|
||||
fn init(alloc: std.mem.Allocator, config: Config) !RequestServer {
|
||||
return RequestServer{
|
||||
.alloc = alloc,
|
||||
.api = try api.ApiSource.init(alloc),
|
||||
.api = try api.ApiSource.init(alloc, config),
|
||||
.config = config,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -63,9 +65,25 @@ pub const RequestServer = struct {
|
|||
}
|
||||
};
|
||||
|
||||
pub const Config = struct {
|
||||
host: []const u8,
|
||||
};
|
||||
|
||||
fn loadConfig(alloc: std.mem.Allocator) !Config {
|
||||
var file = try std.fs.cwd().openFile("config.json", .{});
|
||||
defer file.close();
|
||||
|
||||
const bytes = try file.reader().readAllAlloc(alloc, 1 << 63);
|
||||
defer alloc.free(bytes);
|
||||
|
||||
var ts = std.json.TokenStream.init(bytes);
|
||||
return std.json.parse(Config, &ts, .{ .allocator = alloc });
|
||||
}
|
||||
|
||||
pub fn main() anyerror!void {
|
||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
var srv = try RequestServer.init(gpa.allocator());
|
||||
const cfg = try loadConfig(gpa.allocator());
|
||||
var srv = try RequestServer.init(gpa.allocator(), cfg);
|
||||
api.initThreadPrng(@bitCast(u64, std.time.milliTimestamp()));
|
||||
return srv.listenAndRun(std.net.Address.parseIp("0.0.0.0", 8080) catch unreachable);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue