Advertisement
Lexeii

Naitsirhc's code

Jul 15th, 2012
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Vala 0.87 KB | None | 0 0
  1. import os, osproc, strutils, parseopt, strtabs
  2.  
  3. const printVarsScript = "/tmp/printVars.sh "
  4.  
  5. proc createScript(): void =
  6.   if existsFile(printVarsScript.strip) != true:
  7.     echo("Creating script")
  8.     writeFile(printVarsScript.strip,
  9.       "#!/bin/sh \n" &
  10.       "tmpa=/tmp/a \n" &
  11.       "tmpb=/tmp/b \n" &
  12.       "set -a \n" &
  13.       "env > $tmpa \n" &
  14.       ". $1 \n" &
  15.       "env > $tmpb \n" &
  16.       "diff $tmp{a,b} | sed -ne 's/^> //p' \n" &
  17.       "rm $tmp{a,b} \n")
  18.   return
  19.  
  20. proc confVar*(confFile: string): PStringTable =
  21.   createScript()
  22.   var
  23.     command = "sh " & printVarsScript & confFile
  24.     commandResult = execCmdEx(command)
  25.     rawVars = commandResult.output.strip
  26.   result = newStringTable(modeCaseSensitive)
  27.  
  28.   for line in splitLines(rawVars) :
  29.     var
  30.       lineSplit = split(line, '=')
  31.     result[lineSplit[0]] = lineSplit[1]
  32.  
  33.   return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement