included svninfo header file which gets populated when exportSoftware from newMythenSoftware is executed

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@384 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d 2012-12-14 12:55:34 +00:00
parent 3422686e51
commit c43fe9b10e
3 changed files with 125 additions and 10 deletions

View File

@ -1,7 +1,7 @@
CFLAGS= -DC_ONLY -fPIC CFLAGS= -DC_ONLY -fPIC
#FLAGS+= #-DVERBOSE -DVERYVERBOSE #FLAGS+= #-DVERBOSE -DVERYVERBOSE
DFLAGS= -DDACS_INT DFLAGS= -DDACS_INT -DTHIS_PATH='"$(shell pwd)"'
#ASM=$(shell echo "/lib/modules/`uname -r`/build/include") #ASM=$(shell echo "/lib/modules/`uname -r`/build/include")
@ -28,7 +28,6 @@ DOCDIR ?= docs
all: package $(SRC_CLNT) all: package $(SRC_CLNT)
echo "compiling all" echo "compiling all"

View File

@ -8,6 +8,8 @@
#include <arpa/inet.h> #include <arpa/inet.h>
#include <bitset> #include <bitset>
#include <cstdlib> #include <cstdlib>
#include "svnInfo.h"
int slsDetector::initSharedMemory(detectorType type, int id) { int slsDetector::initSharedMemory(detectorType type, int id) {
@ -1572,13 +1574,9 @@ slsDetectorDefs::externalCommunicationMode slsDetector::setExternalCommunication
int64_t slsDetector::getId( idMode mode, int imod){ int64_t slsDetector::getId( idMode mode, int imod){
int64_t retval=-1; int64_t retval=-1;
int fnum=F_GET_ID; int fnum=F_GET_ID;
int ret=FAIL; int ret=FAIL;
int64_t rev=0;
int rev1;
char mess[100]; char mess[100];
#ifdef VERBOSE #ifdef VERBOSE
@ -1590,10 +1588,8 @@ int64_t slsDetector::getId( idMode mode, int imod){
#endif #endif
if (mode==THIS_SOFTWARE_VERSION) { if (mode==THIS_SOFTWARE_VERSION) {
ret=OK; ret=OK;
sscanf(THIS_REVISION,"$Rev : %x",&rev1); svnInfo* s = new svnInfo(THIS_PATH);
rev=((int64_t)rev1); retval=(thisSoftwareVersion<<32) | (s->getRevision());
retval=(thisSoftwareVersion<<32) | rev;
} else { } else {
if (thisDetector->onlineFlag==ONLINE_FLAG) { if (thisDetector->onlineFlag==ONLINE_FLAG) {
if (controlSocket) { if (controlSocket) {

View File

@ -0,0 +1,120 @@
#ifndef SVN_INFO_H
#define SVN_INFO_H
#include <string>
#include <iostream>
#include <sstream>
#include <fstream>
using namespace std;
/**
*
* @short reads svnInfo.txt and populates this class members
*/
class svnInfo{
public:
/** Constructor : populates the class members from svnInfo.txt*/
svnInfo(string const path){
revision=0;
char fName[100];
strcpy(fName,path.c_str());
strcat(fName,"/svnInfo.txt");
//read from file and populate class
string sLine,sArgName;
ifstream inFile;
inFile.open(fName, ifstream::in);
if(inFile.is_open())
{
while(inFile.good())
{
getline(inFile,sLine);
istringstream sstr(sLine);
if(sstr.good()){
sstr>>sArgName;
if(sArgName=="Path:"){
if(sstr.good())
sstr>>Path;
}
else if(sArgName=="URL:"){
if(sstr.good())
sstr>>URL;
}
else if(sArgName=="Repository"){
if(sstr.good()){
sstr>>sArgName;
if(sArgName=="Root:"){
if(sstr.good())
sstr>>repositoryRoot;
}
else{
if(sstr.good())
sstr>>repositoryUUID;
}
}
}
else if(sArgName=="Revision:"){
if(sstr.good()){
int rev=0;
sstr>>sArgName;
sscanf(sArgName.c_str(),"%x",&rev);
revision = ((int64_t)rev);
}
}
else if(sArgName=="NodeKind:"){
if(sstr.good())
sstr>>nodeKind;
}
else if(sArgName=="Schedule:"){
if(sstr.good())
sstr>>schedule;
}
else if(sArgName=="Last"){
if(sstr.good()){
if(sstr.good()){
sstr>>sArgName;
if(sArgName=="Author:"){
if(sstr.good())
sstr>>lastChangedAuthor;
}
else if(sArgName=="Rev:"){
if(sstr.good())
sstr>>lastChangedRev;
}
else if(sArgName=="Date:"){
if(sstr.good())
sstr>>lastChangedDate;
}
}
}
}
}
}
inFile.close();
}else
cout << "ERROR: Could not open svn Info file: svnInfo.txt" << endl;
};
/** Returns revision */
int64_t getRevision(){return revision;};
private:
string Path;
string URL;
string repositoryRoot;
string repositoryUUID;
int64_t revision;
string nodeKind;
string schedule;
string lastChangedAuthor;
string lastChangedRev;
string lastChangedDate;
};
#endif