From: Ævar Arnfjörð Bjarmason Date: Tue, 31 Aug 2021 08:32:48 GMT Subject: Re: [PATCH 15/15] scalar: accept -C and -c options before the subcommand Message-ID: <871r6axban.fsf@evledraar.gmail.com> In-Reply-To: <6455b18f1b623032b9066c1730dee045fbe7a3f3.1630359290.git.gitgitgadget@gmail.com> On Mon, Aug 30 2021, Johannes Schindelin via GitGitGadget wrote: > The `git` executable has these two very useful options: > > -C : > switch to the specified directory before performing any actions > > -c =: > temporarily configure this setting for the duration of the > specified scalar subcommand > > With this commit, we teach the `scalar` executable the same trick. > [...] > + while (argc > 1 && *argv[1] == '-') { > + if (!strcmp(argv[1], "-C")) { > + if (argc < 3) > + die(_("-C requires a ")); > + if (chdir(argv[2]) < 0) > + die_errno(_("could not change to '%s'"), > + argv[2]); > + argc -= 2; > + argv += 2; > + } else if (!strcmp(argv[1], "-c")) { > + if (argc < 3) > + die(_("-c requires a = argument")); > + git_config_push_parameter(argv[2]); > + argc -= 2; > + argv += 2; > + } else > + break; > + } This along with my earlier comment about the Makefile copy/pasting makes me wonder if an easier way to integrate this wouldn't be to refactor git.c a bit to have it understand either "git" or "scalar", then instead of "ls-tree" etc. as "git" the subcommands would become "built-ins". Which would give us both "[git|scalar] [-c ...] " for free, and elimante the need for the inevetable future divergence of wanting -p, -P, --exec-path etc. in both.