gio-tool: -d option to delete attribute

gio tool has support for deleting attributes of the file. To delete attribute user
should specify type '--type="unset"'. This is not mentioned in help and therefore not
intuitive. By adding '-d' option, we make this process more obvious.

closes #2588
This commit is contained in:
codeboybebop 2022-07-30 15:14:09 -05:00
parent a775578b96
commit ece66f11fc

View File

@ -30,10 +30,12 @@
static char *attr_type = "string";
static gboolean nofollow_symlinks = FALSE;
static gboolean delete = FALSE;
static const GOptionEntry entries[] = {
{ "type", 't', 0, G_OPTION_ARG_STRING, &attr_type, N_("Type of the attribute"), N_("TYPE") },
{ "nofollow-symlinks", 'n', 0, G_OPTION_ARG_NONE, &nofollow_symlinks, N_("Dont follow symbolic links"), NULL },
{ "delete", 'd', 0, G_OPTION_ARG_NONE, &delete, N_("Unset given attribute"), NULL },
G_OPTION_ENTRY_NULL
};
@ -127,8 +129,15 @@ handle_set (int argc, char *argv[], gboolean do_help)
}
attribute = argv[2];
if (delete)
{
type = G_FILE_ATTRIBUTE_TYPE_INVALID;
}
else
{
type = attribute_type_from_string (attr_type);
}
type = attribute_type_from_string (attr_type);
if ((argc < 4) && (type != G_FILE_ATTRIBUTE_TYPE_INVALID))
{
show_help (context, _("Value not specified"));