cellar/src/version.cpp.cog

48 lines
1.4 KiB
Plaintext
Raw Normal View History

2017-03-22 20:13:24 -07:00
// vim: filetype=cpp :
#include <iostream>
#include <string>
#include <vector>
2017-03-22 20:13:24 -07:00
#include "commands.hpp"
#include "output.hpp"
2017-03-22 20:13:24 -07:00
#include "version.hpp"
using namespace std;
using namespace cellar::version;
2017-03-22 20:13:24 -07:00
string cellar::version::short_version() {
/*[[[cog
import cog
import configparser
import datetime
today = datetime.datetime.today()
cparse = configparser.ConfigParser()
2017-03-23 11:13:21 -07:00
cparse.read("cogrc")
config = cparse["version"]
2017-03-22 20:42:08 -07:00
if config.getboolean("release"):
outstring = "version {0}, built {1}".format(config["release_version"], str(today))
else:
try:
import subprocess
cmdoutput = subprocess.check_output(["git", "symbolic-ref", "HEAD"]).decode().strip()
gitbranch = cmdoutput.split("/")[2]
2017-03-22 20:13:24 -07:00
githash = subprocess.check_output(["git", "rev-parse", "HEAD"]).decode().strip()
outstring = "{0} {1}, built {2}".format(gitbranch, githash, str(today))
except:
outstring = "exception raised when trying to read git data at precompile time"
raise
cog.outl("return string(\"{0}\");".format(outstring))
2017-03-22 20:13:24 -07:00
]]]*/
//[[[end]]]
}
void print_version(int argc, vector<string> argv) {
cellar::output::statement(short_version());
}
cellar::commands::CommandFunction versioncmd = cellar::commands::command_map["version"] = &print_version;