xbps-uhelper: added two new targets 'setsource' and 'fromsource'.
Both targets will be used by some upcoming changes in xbps-src, therefore they shouldn't be used manually by the user.
This commit is contained in:
parent
221291929e
commit
dd72cb295d
@ -108,10 +108,11 @@ main(int argc, char **argv)
|
||||
{
|
||||
struct xbps_handle xh;
|
||||
struct xbps_fetch_progress_data xfpd;
|
||||
prop_dictionary_t dict;
|
||||
prop_dictionary_t dict, pkgd;
|
||||
prop_array_t array;
|
||||
const char *version, *rootdir = NULL;
|
||||
char *plist, *pkgname, *pkgver, *in_chroot_env, *hash;
|
||||
bool debug = false, in_chroot = false;
|
||||
bool fromsrc = false, debug = false, in_chroot = false;
|
||||
int i, c, rv = 0;
|
||||
|
||||
while ((c = getopt(argc, argv, "Vdr:")) != -1) {
|
||||
@ -198,6 +199,7 @@ main(int argc, char **argv)
|
||||
MSG_NORMAL, in_chroot ? "[chroot] " : "",
|
||||
argv[1], argv[2], MSG_RESET);
|
||||
}
|
||||
prop_object_release(dict);
|
||||
|
||||
} else if (strcasecmp(argv[0], "unregister") == 0) {
|
||||
/* Unregisters a package from the database */
|
||||
@ -220,6 +222,39 @@ main(int argc, char **argv)
|
||||
MSG_NORMAL, in_chroot ? "[chroot] " : "", argv[1],
|
||||
argv[2], MSG_RESET);
|
||||
|
||||
} else if (strcasecmp(argv[0], "setsource") == 0) {
|
||||
if (argc != 2)
|
||||
usage();
|
||||
|
||||
dict = prop_dictionary_internalize_from_zfile(plist);
|
||||
if (dict == NULL)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
array = prop_dictionary_get(dict, "packages");
|
||||
if (array == NULL)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
pkgd = xbps_find_pkg_in_array_by_name(array, argv[1]);
|
||||
if (pkgd == NULL)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
prop_dictionary_set_bool(pkgd, "installed-from-source", true);
|
||||
write_plist_file(dict, plist);
|
||||
|
||||
} else if (strcasecmp(argv[0], "fromsource") == 0) {
|
||||
if (argc != 2)
|
||||
usage();
|
||||
|
||||
dict = xbps_find_pkg_dict_installed(argv[1], false);
|
||||
if (dict == NULL)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
fromsrc = false;
|
||||
prop_dictionary_get_bool(dict, "installed-from-source",
|
||||
&fromsrc);
|
||||
printf("%s\n", fromsrc ? "yes" : "no");
|
||||
prop_object_release(dict);
|
||||
|
||||
} else if (strcasecmp(argv[0], "version") == 0) {
|
||||
/* Prints version of an installed package */
|
||||
if (argc != 2)
|
||||
|
Loading…
Reference in New Issue
Block a user