diff options
| author | Ganesh Viswanathan <dev@genotrance.com> | 2018-07-13 02:16:01 -0500 |
|---|---|---|
| committer | Ganesh Viswanathan <dev@genotrance.com> | 2018-07-13 02:16:01 -0500 |
| commit | 9e0eb256857b9dce6895b3dcb0e3f6a9dd2b5def (patch) | |
| tree | 946eae418bed10d202b43ea3871e5ba6ce67365c /src | |
| parent | 1a2ef870873f134e0df767d729ba89ecd7e1f01c (diff) | |
| download | nimgen-9e0eb256857b9dce6895b3dcb0e3f6a9dd2b5def.tar.gz nimgen-9e0eb256857b9dce6895b3dcb0e3f6a9dd2b5def.zip | |
Implement #10 - per file reset
Diffstat (limited to 'src')
| -rw-r--r-- | src/nimgen/external.nim | 8 | ||||
| -rw-r--r-- | src/nimgen/runcfg.nim | 17 |
2 files changed, 16 insertions, 9 deletions
diff --git a/src/nimgen/external.nim b/src/nimgen/external.nim index f642cfb..2c4a12e 100644 --- a/src/nimgen/external.nim +++ b/src/nimgen/external.nim @@ -60,15 +60,13 @@ proc gitReset*() = discard execProc("git reset --hard HEAD") -proc gitCheckout*(filename: string) {.used.} = - echo "Resetting file: $#" % [filename] +proc gitCheckout*(file: string) = + echo " Resetting " & file setCurrentDir(gOutput) defer: setCurrentDir(gProjectDir) - let adjustedFile = filename.replace(gOutput & $DirSep, "") - - discard execProc("git checkout $#" % [adjustedFile]) + discard execProc("git checkout $#" % file.replace(gOutput & "/", "")) proc gitRemotePull*(url: string, pull=true) = if dirExists(gOutput/".git"): diff --git a/src/nimgen/runcfg.nim b/src/nimgen/runcfg.nim index a702e47..a641150 100644 --- a/src/nimgen/runcfg.nim +++ b/src/nimgen/runcfg.nim @@ -24,11 +24,12 @@ proc runFile*(file: string, cfgin: OrderedTableRef = newOrderedTable[string, str cfg = cfgin sfile = search(file) - if sfile.len() == 0 or sfile in gDoneRecursive: + if sfile in gDoneRecursive: return - echo "Processing " & sfile - gDoneRecursive.add(sfile) + if sfile.len() != 0: + echo "Processing " & sfile + gDoneRecursive.add(sfile) for pattern in gWildcards.keys(): var m: RegexMatch @@ -51,6 +52,7 @@ proc runFile*(file: string, cfgin: OrderedTableRef = newOrderedTable[string, str let (action, val) = getKey(act) if val == true: if action == "create": + echo "Creating " & file createDir(file.splitPath().head) writeFile(file, cfg[act]) elif action in @["prepend", "append", "replace", "comment", @@ -87,7 +89,9 @@ proc runFile*(file: string, cfgin: OrderedTableRef = newOrderedTable[string, str srch = act if file.splitFile().ext != ".nim": - var noprocess = false + var + noprocess = false + reset = false for act in cfg.keys(): let (action, val) = getKey(act) @@ -105,6 +109,8 @@ proc runFile*(file: string, cfgin: OrderedTableRef = newOrderedTable[string, str c2nimConfig.defines = true elif action == "noprocess": noprocess = true + elif action == "reset": + reset = true elif action == "flags": c2nimConfig.flags = cfg[act] elif action == "ppflags": @@ -140,6 +146,9 @@ proc runFile*(file: string, cfgin: OrderedTableRef = newOrderedTable[string, str if incout.len() != 0: prepend(outfile, incout) + if reset: + gitCheckout(sfile) + proc runCfg*(cfg: string) = if not fileExists(cfg): echo "Config doesn't exist: " & cfg |
