forked from ariadne/pkgconf
main: add --max-version and --exact version (issue #8)
parent
7ae5ccd177
commit
d5ddeb401b
48
main.c
48
main.c
|
@ -60,6 +60,8 @@ static int want_keep_system_libs = 0;
|
||||||
static int maximum_traverse_depth = -1;
|
static int maximum_traverse_depth = -1;
|
||||||
|
|
||||||
static char *required_pkgconfig_version = NULL;
|
static char *required_pkgconfig_version = NULL;
|
||||||
|
static char *required_exact_module_version = NULL;
|
||||||
|
static char *required_max_module_version = NULL;
|
||||||
static char *required_module_version = NULL;
|
static char *required_module_version = NULL;
|
||||||
static char *want_variable = NULL;
|
static char *want_variable = NULL;
|
||||||
|
|
||||||
|
@ -508,6 +510,8 @@ main(int argc, char *argv[])
|
||||||
{ "keep-system-cflags", no_argument, &want_keep_system_cflags, 26, },
|
{ "keep-system-cflags", no_argument, &want_keep_system_cflags, 26, },
|
||||||
{ "keep-system-libs", no_argument, &want_keep_system_libs, 26, },
|
{ "keep-system-libs", no_argument, &want_keep_system_libs, 26, },
|
||||||
{ "define-variable", required_argument, NULL, 27, },
|
{ "define-variable", required_argument, NULL, 27, },
|
||||||
|
{ "exact-version", required_argument, NULL, 28, },
|
||||||
|
{ "max-version", required_argument, NULL, 29, },
|
||||||
{ NULL, 0, NULL, 0 }
|
{ NULL, 0, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -530,6 +534,12 @@ main(int argc, char *argv[])
|
||||||
case 27:
|
case 27:
|
||||||
pkg_tuple_define_global(optarg);
|
pkg_tuple_define_global(optarg);
|
||||||
break;
|
break;
|
||||||
|
case 28:
|
||||||
|
required_exact_module_version = optarg;
|
||||||
|
break;
|
||||||
|
case 29:
|
||||||
|
required_max_module_version = optarg;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -589,6 +599,44 @@ main(int argc, char *argv[])
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (required_exact_module_version != NULL)
|
||||||
|
{
|
||||||
|
pkg_t *pkg;
|
||||||
|
const char *package;
|
||||||
|
|
||||||
|
package = argv[optind];
|
||||||
|
if (package == NULL)
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
|
pkg = pkg_find(package, global_traverse_flags);
|
||||||
|
if (pkg == NULL)
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
if (pkg_compare_version(pkg->version, required_exact_module_version) == 0)
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (required_max_module_version != NULL)
|
||||||
|
{
|
||||||
|
pkg_t *pkg;
|
||||||
|
const char *package;
|
||||||
|
|
||||||
|
package = argv[optind];
|
||||||
|
if (package == NULL)
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
|
pkg = pkg_find(package, global_traverse_flags);
|
||||||
|
if (pkg == NULL)
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
if (pkg_compare_version(pkg->version, required_max_module_version) <= 0)
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
const char *package = argv[optind];
|
const char *package = argv[optind];
|
||||||
|
|
Loading…
Reference in New Issue