Final bits added. Needs testing.

This commit is contained in:
Amrykid 2011-12-25 14:37:10 -06:00
commit d0d0c79540

View file

@ -11,7 +11,7 @@ when defined(gcc) and defined(windows):
{.link: "icons/koch.res".} {.link: "icons/koch.res".}
import import
os, strutils, parseopt, osproc, httpclient os, strutils, parseopt, osproc, httpclient, streams
when defined(haveZipLib): when defined(haveZipLib):
import zipfiles import zipfiles
@ -45,6 +45,8 @@ Boot options:
-d:nativeStacktrace use native stack traces (only for Mac OS X or Linux) -d:nativeStacktrace use native stack traces (only for Mac OS X or Linux)
""" """
proc boot(args: string) # Forward declaration
proc exe(f: string): string = return addFileExt(f, ExeExt) proc exe(f: string): string = return addFileExt(f, ExeExt)
proc exec(cmd: string) = proc exec(cmd: string) =
@ -82,19 +84,29 @@ proc web(args: string) =
NimrodVersion) NimrodVersion)
proc update(args: string) = proc update(args: string) =
when defined(windows):
echo("Windows Users: Make sure to be running this in Bash. If you aren't, press CTRL+C now.")
var thisDir = getAppDir() var thisDir = getAppDir()
var git = findExe("git")
echo("Checking for git repo...") echo("Checking for git repo...")
if existsDir(thisDir & "/.git"): if existsDir(thisDir & "/.git") and git != "":
echo("Git repo found!") echo("Git repo found!")
# use git to download latest source # use git to download latest source
var output = execProcess("git diff origin/master master") discard startCmd(git & " fetch origin master")
if output == "\r\n": var procs = startCmd(git & " diff origin/master master")
var errcode = procs.waitForExit()
var output = readLine(procs.outputStream)
echo(output)
if errcode == 0:
if output == "":
# No changes # No changes
echo("No update. Exiting..") echo("No update. Exiting..")
return return
else: else:
echo("Fetching updates from repo...") echo("Fetching updates from repo...")
var pullout = execCmdEx("git pull origin master") var pullout = execCmdEx(git & " pull origin master")
if pullout[1] != 0: if pullout[1] != 0:
echo("An error has occured.") echo("An error has occured.")
return return
@ -102,6 +114,9 @@ proc update(args: string) =
if pullout[0] == "Already up-to-date.\r\n": if pullout[0] == "Already up-to-date.\r\n":
echo("No new changes fetched from the repo. Local branch must be ahead of it. Exiting...") echo("No new changes fetched from the repo. Local branch must be ahead of it. Exiting...")
return return
else:
echo("An error has occured.")
return
else: else:
@ -123,7 +138,7 @@ proc update(args: string) =
return return
echo("Starting update...") echo("Starting update...")
exec("./koch boot -d:release") boot(args)
echo("Update complete!") echo("Update complete!")