#include <stdio.h>

#include "basic.h"
#include "config.h"
#include "util.h"
#include "cmdparse.h"
// #include "corecmds.h"
#include "outfmt.h"

#define VERSION_STRING_LEN (16)

static const char dateStr[] = __DATE__;
static const char toolchain = 'Q';

static const unsigned char verSubMinor = 1;
static const unsigned char verMinor = 3;
static const unsigned char verMajor = 2;

static char versionString[VERSION_STRING_LEN];

static int getVersionHandler(char * cmdStr)
{
  outfmtSendVersion(versionString);
  return 0;
}

int versionInit(void)
{
  int result;
  
  clearString(versionString, VERSION_STRING_LEN);
  
  if (verSubMinor != 0) {
    sprintf(versionString, "%u.%u.%u-%c [%s]", verMajor, verMinor, verSubMinor, toolchain, dateStr);
    }
  else {
    sprintf(versionString, "%u.%u-%c [%s]", verMajor, verMinor, toolchain, dateStr);
    }
    
  result = cmdparseAddCommand("get", "version", getVersionHandler);
  return result;
}
