core: Make argument parsing more robust against "lt-ostree" name
When running uninstalled, we were parsing our argv[0] incorrectly.
This commit is contained in:
parent
102180c5f2
commit
6d9de91672
|
|
@ -90,6 +90,8 @@ ostree_main (int argc,
|
||||||
char **cmd_argv = NULL;
|
char **cmd_argv = NULL;
|
||||||
gboolean am_root;
|
gboolean am_root;
|
||||||
gboolean have_repo_arg;
|
gboolean have_repo_arg;
|
||||||
|
const char *binname = NULL;
|
||||||
|
const char *slash = NULL;
|
||||||
const char *cmd = NULL;
|
const char *cmd = NULL;
|
||||||
const char *repo = NULL;
|
const char *repo = NULL;
|
||||||
GFile *repo_file = NULL;
|
GFile *repo_file = NULL;
|
||||||
|
|
@ -118,9 +120,16 @@ ostree_main (int argc,
|
||||||
if (repo)
|
if (repo)
|
||||||
repo_file = ot_gfile_new_for_path (repo);
|
repo_file = ot_gfile_new_for_path (repo);
|
||||||
|
|
||||||
cmd = strchr (argv[0], '-');
|
slash = strrchr (argv[0], '/');
|
||||||
if (cmd)
|
if (slash)
|
||||||
|
binname = slash+1;
|
||||||
|
else
|
||||||
|
binname = argv[0];
|
||||||
|
|
||||||
|
if (g_str_has_prefix (binname, "ostree-"))
|
||||||
{
|
{
|
||||||
|
cmd = strchr (binname, '-');
|
||||||
|
g_assert (cmd);
|
||||||
cmd += 1;
|
cmd += 1;
|
||||||
arg_off = 1;
|
arg_off = 1;
|
||||||
if (have_repo_arg)
|
if (have_repo_arg)
|
||||||
|
|
@ -147,7 +156,8 @@ ostree_main (int argc,
|
||||||
|
|
||||||
if (!builtin->name)
|
if (!builtin->name)
|
||||||
{
|
{
|
||||||
set_error_print_usage (&error, builtins, "Unknown command", argv);
|
ot_lfree char *msg = g_strdup_printf ("Unknown command '%s'", cmd);
|
||||||
|
set_error_print_usage (&error, builtins, msg, argv);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue