mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 03:26:31 +01:00
Substitute for the getrev code. Unfortunately, it only fetches the commit-hash for HEAD.
This should be sufficient for our needs though. Signed-off-by: carnie <elly1989@rocketmail.com>
This commit is contained in:
@@ -2,99 +2,39 @@
|
||||
* 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") //commented out until the git revcount stuff is ready
|
||||
*/
|
||||
var/global/datum/getrev/revdata = new()
|
||||
|
||||
//Oh yeah, I'm an OOP fag, lalala
|
||||
/datum/getrev
|
||||
var/project_href = "https://www.github.com/tgstation/-tg-station"
|
||||
var/revision
|
||||
var/commiter
|
||||
var/svndirpath
|
||||
var/revhref
|
||||
var/showinfo
|
||||
|
||||
proc/abort()
|
||||
world.log << "Unable to get revision info."
|
||||
spawn()
|
||||
del src
|
||||
|
||||
New(filename)
|
||||
..()
|
||||
var/list/Lines = file2list(filename)
|
||||
if(!Lines.len) return abort()
|
||||
for(var/t in Lines)
|
||||
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 = file2list("[svndirpath]/entries")
|
||||
var/s_archive = "" //Stores the previous line so the revision owner can be assigned.
|
||||
|
||||
//This thing doesn't count blank lines, so doing filelist[4] isn't working.
|
||||
for(var/s in filelist)
|
||||
if(!commiter)
|
||||
if(s == "has-props")//The line before this is the committer.
|
||||
commiter = s_archive
|
||||
if(!revision)
|
||||
var/n = text2num(s)
|
||||
if(isnum(n))
|
||||
if(n > 5000 && n < 99999) //Do you think we'll still be up and running at r100000? :) ~Errorage
|
||||
revision = s
|
||||
if(revision && commiter)
|
||||
break
|
||||
s_archive = s
|
||||
if(!revision)
|
||||
abort()
|
||||
world.log << "Running TG Revision Number: [revision]."
|
||||
diary << "Revision info loaded succesfully"
|
||||
return
|
||||
return abort()
|
||||
|
||||
proc/getRevisionText()
|
||||
var/output
|
||||
if(revhref)
|
||||
output = {"<a href="[revhref][revision]">[revision]</a>"}
|
||||
New()
|
||||
var/list/head_log = file2list(".git/logs/HEAD", "\n")
|
||||
for(var/line=head_log.len, line>=1, line--)
|
||||
if(head_log[line])
|
||||
var/list/last_entry = text2list(head_log[line], " ")
|
||||
if(last_entry.len < 2) continue
|
||||
revision = last_entry[2]
|
||||
break
|
||||
|
||||
showinfo = "<b>Server Revision:</b> "
|
||||
if(revision)
|
||||
showinfo += "<a href='[project_href]/commit/[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>"}
|
||||
showinfo += "*unknown*"
|
||||
showinfo += "<p>-<a href='[project_href]/issues/new'>Report Bugs Here-</a><br><i>Please provide as much info as possible<br>Copy/paste the revision hash into your issue report if possible, thanks</i> :)</p>"
|
||||
|
||||
world.log << "Running TG Revision Number: [revision]."
|
||||
return
|
||||
|
||||
client/verb/showrevinfo()
|
||||
set category = "OOC"
|
||||
set name = "Show Server Revision"
|
||||
var/output = "Sorry, the revision info is unavailable.<br>"
|
||||
if(revdata)
|
||||
output = revdata.showInfo()
|
||||
|
||||
output += "Current Infomational Settings: <br>"
|
||||
output += "Protect Authority Roles From Tratior: [config.protect_roles_from_antagonist]<br>"
|
||||
var/output = revdata.showinfo
|
||||
output += "<b>Current Infomational Settings:</b><br>"
|
||||
output += "Protect Authority Roles From Traitor: [config.protect_roles_from_antagonist]<br>"
|
||||
usr << browse(output,"window=revdata");
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user