mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 14:42:40 +01:00
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>
35 lines
746 B
C
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());
|
|
}
|