core-lightning/common/version.c
Vincenzo Palazzo 8f94e8b943 comm: make sure that our version check is reliable
Rework the logic of the version check used in the
database migration, and make sure
that it is full functional to avoid confusion
at release time.

Changelog-Fixed: database: Correctly identity official release versions for database upgrade.

Reported-by: @urza
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
2023-01-17 14:15:24 +10:30

35 lines
746 B
C

#include "config.h"
#include <ccan/compiler/compiler.h>
#include <common/version.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Only common/version.c can safely include this. */
# include "version_gen.h"
const char *version(void)
{
return VERSION;
}
char *version_and_exit(const void *unused UNUSED)
{
printf("%s\n", VERSION);
if (BUILD_FEATURES[0]) {
printf("Built with features: %s\n", BUILD_FEATURES);
}
exit(0);
}
static bool cmp_release_version(const char *version) {
if (version[0] != 'v')
return false;
return strspn(version+1, ".0123456789") == strlen(version+1);
}
/* Released versions are of form v[year].[month]?(.patch)* */
bool is_released_version(void)
{
return cmp_release_version(version());
}