From c3f28bb3950fda3b32e1aefea138b0dd82e538cb Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Fri, 11 Mar 2016 20:35:10 +1100 Subject: [PATCH] show-server-revision tells if test pr is merged --- code/datums/helper_datums/getrev.dm | 43 +++++++++++++++-------------- code/game/gamemodes/game_mode.dm | 4 +-- code/world.dm | 2 +- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index 0a48e574eaa..dd8c8848297 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -1,38 +1,41 @@ var/global/datum/getrev/revdata = new() /datum/getrev - var/revision + var/parentcommit + var/commit + var/testmerge var/date - var/showinfo /datum/getrev/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 = splittext(head_log[line], " ") - if(last_entry.len < 2) - continue - revision = last_entry[2] - // Get date/time - if(last_entry.len >= 5) - var/unix_time = text2num(last_entry[5]) - if(unix_time) - date = unix2date(unix_time) - break + var/head_file = return_file_text(".git/logs/HEAD") + var/regex/head_log = new("(\\w{40}) (\\w{40}).+> (\\d{10}).+\n\\Z") + head_log.Find(head_file) + parentcommit = head_log.group[1] + commit = head_log.group[2] + var/unix_time = text2num(head_log.group[3]) + if(SERVERTOOLS && fexists("..\\..\\prtestjob.lk")) + testmerge = return_file_text("..\\..\\prtestjob.lk") + date = unix2date(unix_time) world.log << "Running /tg/ revision:" - world.log << date - world.log << revision + world.log << "[date]" + world.log << commit + if(testmerge) + world.log << "Test merge active of PR #[testmerge]" + world.log << "Based off master commit [parentcommit]" world.log << "Current map - [MAP_NAME]" //can't think of anywhere better to put it - return /client/verb/showrevinfo() set category = "OOC" set name = "Show Server Revision" set desc = "Check the current server code revision" - if(revdata.revision) + if(revdata.commit) src << "Server revision compiled on: [revdata.date]" - src << "[revdata.revision]" + if(revdata.testmerge) + src << "Test merge active of PR #[revdata.testmerge]" + src << "Based off master commit [revdata.parentcommit]" + else + src << "[revdata.commit]" else src << "Revision unknown" src << "Current Infomational Settings:" diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 978f58a3fad..d7c63098f28 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -80,8 +80,8 @@ feedback_set_details("round_start","[time2text(world.realtime)]") if(ticker && ticker.mode) feedback_set_details("game_mode","[ticker.mode]") - if(revdata.revision) - feedback_set_details("revision","[revdata.revision]") + if(revdata.commit) + feedback_set_details("revision","[revdata.commit]") feedback_set_details("server_ip","[world.internet_address]:[world.port]") if(report) spawn (rand(waittime_l, waittime_h)) diff --git a/code/world.dm b/code/world.dm index 49c7ceea5f5..9a7c720095b 100644 --- a/code/world.dm +++ b/code/world.dm @@ -107,7 +107,7 @@ var/last_irc_status = 0 s["host"] = host ? host : null s["active_players"] = get_active_player_count() s["players"] = clients.len - s["revision"] = revdata.revision + s["revision"] = revdata.commit s["revision_date"] = revdata.date var/list/adm = get_admin_counts()