Files
CHOMPStation2/code/datums/helper_datums/getrev.dm
elly1989@rocketmail.com 2d77383ad0 Widespread grammar fixes! Still loads I've yet to fix. It'll take forever.
Resolved Issue 333: The plastic flaps on the mining station now actually block air-flow. http://code.google.com/p/tgstation13/issues/detail?id=333
Fix for runtime in issue 332 until getrev is fixed. https://code.google.com/p/tgstation13/issues/detail?id=332
Resolved Issue 331 https://code.google.com/p/tgstation13/issues/detail?id=331
Resolved Issue 304 https://code.google.com/p/tgstation13/issues/detail?id=304
Removed a lever I found randomly placed within the asteroid rock.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3021 316c924e-a436-60f5-8080-3fe189b3f50e
2012-01-31 10:03:55 +00:00

91 lines
2.0 KiB
Plaintext

/*
* This datum gets revision info from local svn 'entries' file
* Path to the directory containing it should be in 'config/svndir.txt' file
*
*/
var/global/datum/getrev/revdata = new("config/svndir.txt")
//Oh yeah, I'm an OOP fag, lalala
/datum/getrev
var/revision
var/commiter
var/svndirpath
var/revhref
proc/abort()
spawn()
del src
New(filename)
..()
if(!fexists(filename))
return abort()
var/text = file2text(file(filename))
if(!text)
diary << "Unable to get [filename] contents, aborting"
return abort()
var/list/CL = tg_text2list(text, "\n")
for (var/t in CL)
if (!t)
continue
t = trim(t)
if (length(t) == 0)
continue
else if (copytext(t, 1, 2) == "#")
continue
var/pos = findtext(t, " ")
var/name = null
var/value = null
if (pos)
name = lowertext(copytext(t, 1, pos))
value = copytext(t, pos + 1)
else
name = lowertext(t)
if(!name)
continue
switch(name)
if("svndir")
svndirpath = value
if("revhref")
revhref = value
if(svndirpath && fexists(svndirpath) && fexists("[svndirpath]/entries") && isfile(file("[svndirpath]/entries")))
var/list/filelist = dd_file2list("[svndirpath]/entries",null)
if(filelist.len < 4)
return abort()
revision = filelist[4]
commiter = filelist[12]
diary << "Revision info loaded succesfully"
return
return abort()
proc/getRevisionText()
var/output
if(revhref)
output = {"<a href="[revhref][revision]">[revision]</a>"}
else
output = revision
return output
proc/showInfo()
return {"<html>
<head>
</head>
<body>
<p><b>Server Revision:</b> [getRevisionText()]<br/>
<b>Author:</b> [commiter]</p>
</body>
<html>"}
client/verb/showrevinfo()
set category = "OOC"
set name = "Show Server Revision"
var/output = "Sorry, the revision info is unavailable."
if(revdata)
output = revdata.showInfo()
usr << browse(output,"window=revdata");
return