update Nimbus header and refine db backend picking

- dynamically generated copyright year interval
- added the db backend to the header
- documented the db-backend-changing define, made it case insensitive
  and ensured wrong values would trigger compilation errors
This commit is contained in:
Ștefan Talpalaru 2019-01-06 23:06:26 +01:00 committed by zah
parent 6d234b70d7
commit 89044b84e7
3 changed files with 25 additions and 9 deletions

View File

@ -71,6 +71,12 @@ nimble nimbus
Report any errors you encounter, please, if not [already documented](https://github.com/status-im/nimbus)!
### Development tips
- you can switch the DB backend with a Nim compiler define:
`-d:nimbus_db_backend=...` where the (case-insensitive) value is one of
"rocksdb" (the default), "sqlite", "lmdb".
#### Troubleshooting
Sometimes, the build will fail even though the latest CI is green - here are a few tips to handle this:

View File

@ -1,5 +1,5 @@
# Nimbus
# Copyright (c) 2018 Status Research & Development GmbH
# Copyright (c) 2018-2019 Status Research & Development GmbH
# Licensed under either of
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE))
# * MIT license ([LICENSE-MIT](LICENSE-MIT))
@ -8,15 +8,16 @@
# those terms.
import
parseopt, strutils, macros, os,
parseopt, strutils, macros, os, times,
asyncdispatch2, eth_keys, eth_p2p, eth_common, chronicles, nimcrypto/hash,
./db/select_backend,
./vm/interpreter/vm_forks
const
let
NimbusName* = "Nimbus"
## project name string
NimbusCopyright* = "Copyright (C) 2018 Status Research & Development GmbH"
NimbusCopyright* = "Copyright (C) 2018-" & $(now().utc.year) & " Status Research & Development GmbH"
## copyright string
NimbusMajor*: int = 0
@ -32,7 +33,7 @@ const
## is the version of Nimbus as a string.
NimbusHeader* = NimbusName & " Version " & NimbusVersion &
" [" & hostOS & ": " & hostCPU & "]\r\n" &
" [" & hostOS & ": " & hostCPU & ", " & nimbus_db_backend & "]\r\n" &
NimbusCopyright
## is the header which printed, when nimbus binary got executed

View File

@ -1,10 +1,19 @@
const nimbus_db_backend* {.strdefine.} = "rocksdb"
import strutils
when nimbus_db_backend == "sqlite":
type DbBackend = enum
sqlite,
rocksdb,
lmdb
const
nimbus_db_backend* {.strdefine.} = "rocksdb"
dbBackend = parseEnum[DbBackend](nimbus_db_backend)
when dbBackend == sqlite:
import ./backends/sqlite_backend as database_backend
elif nimbus_db_backend == "rocksdb":
elif dbBackend == rocksdb:
import ./backends/rocksdb_backend as database_backend
else:
elif dbBackend == lmdb:
import ./backends/lmdb_backend as database_backend
export database_backend