Skip to content

Commit

Permalink
scalar-diagnose: use 'git diagnose --mode=all'
Browse files Browse the repository at this point in the history
Replace implementation of 'scalar diagnose' with an internal invocation of
'git diagnose --mode=all'. This simplifies the implementation of
'cmd_diagnose' by making it a direct alias of 'git diagnose' and removes
some code in 'scalar.c' that is duplicated in 'builtin/diagnose.c'. The
simplicity of the alias also sets up a clean deprecation path for 'scalar
diagnose' (in favor of 'git diagnose'), if that is desired in the future.

This introduces one minor change to the output of 'scalar diagnose', which
is that the prefix of the created zip archive is changed from 'scalar_' to
'git-diagnostics-'.

Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
vdye authored and gitster committed Aug 12, 2022
1 parent aac0e8f commit 672196a
Showing 1 changed file with 6 additions and 22 deletions.
28 changes: 6 additions & 22 deletions contrib/scalar/scalar.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#include "dir.h"
#include "packfile.h"
#include "help.h"
#include "diagnose.h"

/*
* Remove the deepest subdirectory in the provided path string. Path must not
Expand Down Expand Up @@ -510,34 +509,19 @@ static int cmd_diagnose(int argc, const char **argv)
N_("scalar diagnose [<enlistment>]"),
NULL
};
struct strbuf zip_path = STRBUF_INIT;
time_t now = time(NULL);
struct tm tm;
struct strbuf diagnostics_root = STRBUF_INIT;
int res = 0;

argc = parse_options(argc, argv, NULL, options,
usage, 0);

setup_enlistment_directory(argc, argv, usage, options, &zip_path);

strbuf_addstr(&zip_path, "/.scalarDiagnostics/scalar_");
strbuf_addftime(&zip_path,
"%Y%m%d_%H%M%S", localtime_r(&now, &tm), 0, 0);
strbuf_addstr(&zip_path, ".zip");
switch (safe_create_leading_directories(zip_path.buf)) {
case SCLD_EXISTS:
case SCLD_OK:
break;
default:
error_errno(_("could not create directory for '%s'"),
zip_path.buf);
goto diagnose_cleanup;
}
setup_enlistment_directory(argc, argv, usage, options, &diagnostics_root);
strbuf_addstr(&diagnostics_root, "/.scalarDiagnostics");

res = create_diagnostics_archive(&zip_path, DIAGNOSE_ALL);
res = run_git("diagnose", "--mode=all", "-s", "%Y%m%d_%H%M%S",
"-o", diagnostics_root.buf, NULL);

diagnose_cleanup:
strbuf_release(&zip_path);
strbuf_release(&diagnostics_root);
return res;
}

Expand Down

0 comments on commit 672196a

Please sign in to comment.