Skip to content

Commit

Permalink
update-microsoft-git: interface with apt-get on Linux
Browse files Browse the repository at this point in the history
The 'git update-microsoft-git' builtin already interfaces with the
git-for-windows/git upgrader on Windows and brew on macOS. Add an
integration with apt-get on Ubuntu. The implementation attempts to call
apt-get on all Linux machines, but it will report a failure when that is
not available. The two commands are:

1. sudo apt-get update
2. sudo apt-get upgrade microsoft-git

The first has an error message because that will likely only fail when
apt-get does not exist on the path (or the user fails to supply the sudo
password). The error condition for the second is passed to the user. It
is possible that a user installs a package manually and not through a
Microsoft feed, in which case the 'upgrade' command will fail with an
error message.

Extra newlines are added to provide whitespace between the Git messages
and the dense output from apt-get.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
  • Loading branch information
derrickstolee committed Sep 29, 2021
1 parent 3011dc5 commit 82db149
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions builtin/update-microsoft-git.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,26 @@ static int platform_specific_upgrade(void)
#else
static int platform_specific_upgrade(void)
{
error(_("update-microsoft-git is not supported on this platform"));
return 1;
int res;
struct strvec args = STRVEC_INIT;

printf("Updating apt-get with 'sudo apt-get update'\n\n");

strvec_pushl(&args, "sudo", "apt-get", "update", NULL);
res = run_command_v_opt(args.v, 0);
strvec_clear(&args);

if (res) {
error(_("'sudo apt-get update' failed; is apt-get installed?"));
return 1;
}

printf("\nUpgrading microsoft-git with 'sudo apt-get upgrade microsoft-git'\n\n");
strvec_pushl(&args, "sudo", "apt-get", "upgrade", "microsoft-git", NULL);
res = run_command_v_opt(args.v, 0);
strvec_clear(&args);

return res;
}
#endif

Expand Down

0 comments on commit 82db149

Please sign in to comment.