4e54075078
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
39 lines
931 B
Nim
39 lines
931 B
Nim
## Ormin -- ORM for Nim.
|
|
## (c) 2017 Andreas Rumpf
|
|
## MIT License.
|
|
|
|
import strutils, os, parseopt
|
|
|
|
import ../ormin/importer_core
|
|
|
|
proc writeHelp() =
|
|
echo """
|
|
ormin <schema.sql> --out:<file.nim> --db:postgre|sqlite|mysql
|
|
"""
|
|
|
|
proc writeVersion() = echo "v1.0"
|
|
|
|
var p = initOptParser()
|
|
var infile = ""
|
|
var outfile = ""
|
|
var target: ImportTarget
|
|
for kind, key, val in p.getopt():
|
|
case kind
|
|
of cmdArgument:
|
|
infile = key
|
|
of cmdLongOption, cmdShortOption:
|
|
case key
|
|
of "help", "h": writeHelp()
|
|
of "version", "v": writeVersion()
|
|
of "out", "o": outfile = val
|
|
of "db": target = parseEnum[ImportTarget](val)
|
|
else: discard
|
|
of cmdEnd: assert(false) # cannot happen
|
|
if infile == "":
|
|
# no filename has been given, so we show the help:
|
|
writeHelp()
|
|
else:
|
|
if outfile == "":
|
|
outfile = changeFileExt(infile, "nim")
|
|
writeFile(outfile, generateModelCode(readFile(infile), absolutePath(infile), target))
|