* Added support for GIT hashes. (credits: Ind, Trojal)
Signed-off-by: Euphy <euphy@rathena.org>
This commit is contained in:
parent
3beb7833f9
commit
f919ac05af
@ -245,17 +245,49 @@ const char* get_svn_revision(void) {
|
||||
}
|
||||
|
||||
// fallback
|
||||
snprintf(svn_version_buffer, sizeof(svn_version_buffer), "Unknown");
|
||||
svn_version_buffer[0] = UNKNOWN_VERSION;
|
||||
return svn_version_buffer;
|
||||
}
|
||||
#endif
|
||||
|
||||
// GIT path
|
||||
#define GIT_ORIGIN "refs/remotes/origin/master"
|
||||
|
||||
// Grabs the hash from the last time the user updated their working copy (last pull)
|
||||
const char *get_git_hash (void) {
|
||||
static char GitHash[41] = ""; //Sha(40) + 1
|
||||
FILE *fp;
|
||||
|
||||
if( GitHash[0] != '\0' )
|
||||
return GitHash;
|
||||
|
||||
if( (fp = fopen(".git/"GIT_ORIGIN, "r")) != NULL ) {
|
||||
char line[64];
|
||||
char *rev = malloc(sizeof(char) * 50);
|
||||
|
||||
if( fgets(line, sizeof(line), fp) && sscanf(line, "%s", rev) )
|
||||
snprintf(GitHash, sizeof(GitHash), "%s", rev);
|
||||
|
||||
free(rev);
|
||||
fclose(fp);
|
||||
} else {
|
||||
GitHash[0] = UNKNOWN_VERSION;
|
||||
}
|
||||
|
||||
if ( !(*GitHash) ) {
|
||||
GitHash[0] = UNKNOWN_VERSION;
|
||||
}
|
||||
|
||||
return GitHash;
|
||||
}
|
||||
|
||||
/*======================================
|
||||
* CORE : Display title
|
||||
* ASCII By CalciumKid 1/12/2011
|
||||
*--------------------------------------*/
|
||||
static void display_title(void) {
|
||||
//ClearScreen(); // clear screen and go up/left (0, 0 position in text)
|
||||
const char* svn = get_svn_revision();
|
||||
const char* git = get_git_hash();
|
||||
|
||||
ShowMessage("\n");
|
||||
ShowMessage(""CL_PASS" "CL_BOLD" "CL_PASS""CL_CLL""CL_NORMAL"\n");
|
||||
@ -269,7 +301,10 @@ static void display_title(void) {
|
||||
ShowMessage(""CL_PASS" "CL_GREEN" http://rathena.org/board/ "CL_PASS""CL_CLL""CL_NORMAL"\n");
|
||||
ShowMessage(""CL_PASS" "CL_BOLD" "CL_PASS""CL_CLL""CL_NORMAL"\n");
|
||||
|
||||
ShowInfo("SVN Revision: '"CL_WHITE"%s"CL_RESET"'.\n", get_svn_revision());
|
||||
if( svn[0] != UNKNOWN_VERSION )
|
||||
ShowInfo("SVN Revision: '"CL_WHITE"%s"CL_RESET"'\n", svn);
|
||||
else if( git[0] != UNKNOWN_VERSION )
|
||||
ShowInfo("Git Hash: '"CL_WHITE"%s"CL_RESET"'\n", git);
|
||||
}
|
||||
|
||||
// Warning if executed as superuser (root)
|
||||
|
@ -16,6 +16,8 @@ extern char **arg_v;
|
||||
extern int buildbotflag;
|
||||
#endif
|
||||
|
||||
#define UNKNOWN_VERSION '\x02'
|
||||
|
||||
/// @see E_CORE_ST
|
||||
extern int runflag;
|
||||
extern char *SERVER_NAME;
|
||||
@ -31,7 +33,8 @@ enum {
|
||||
extern char SERVER_TYPE;
|
||||
|
||||
extern int parse_console(const char* buf);
|
||||
extern const char *get_svn_revision(void);
|
||||
const char *get_svn_revision(void);
|
||||
const char *get_git_hash(void);
|
||||
extern int do_init(int,char**);
|
||||
extern void set_server_type(void);
|
||||
extern void do_abort(void);
|
||||
|
10
src/map/pc.c
10
src/map/pc.c
@ -1068,8 +1068,16 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim
|
||||
if( !changing_mapservers ) {
|
||||
|
||||
if (battle_config.display_version == 1) {
|
||||
const char* svn = get_svn_revision();
|
||||
const char* git = get_git_hash();
|
||||
char buf[256];
|
||||
sprintf(buf, "SVN version: %s", get_svn_revision());
|
||||
|
||||
if( svn[0] != UNKNOWN_VERSION )
|
||||
sprintf(buf,"SVN Revision: %s", svn);
|
||||
else if( git[0] != UNKNOWN_VERSION )
|
||||
sprintf(buf,"Git Hash: %s", git);
|
||||
else
|
||||
sprintf(buf,"Unknown Version");
|
||||
clif_displaymessage(sd->fd, buf);
|
||||
}
|
||||
|
||||
|
@ -17105,10 +17105,10 @@ BUILDIN_FUNC(is_function) {
|
||||
* get_revision() -> retrieves the current svn revision (if available)
|
||||
**/
|
||||
BUILDIN_FUNC(get_revision) {
|
||||
const char * revision;
|
||||
const char *svn = get_svn_revision();
|
||||
|
||||
if ( (revision = get_svn_revision()) != 0 )
|
||||
script_pushint(st,atoi(revision));
|
||||
if ( svn[0] != UNKNOWN_VERSION )
|
||||
script_pushint(st,atoi(svn));
|
||||
else
|
||||
script_pushint(st,-1); //unknown
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user