From 5166f651eae10308e1e05bcde01528c3fe361779 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 29 Mar 2022 03:17:15 +0300 Subject: [PATCH] Don't fail if there are no Github extensions (fix #877) --- .vscode/topgrade.code-snippets | 25 +++++++++++++++++++++++++ src/steps/generic.rs | 5 +++++ src/steps/os/windows.rs | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 .vscode/topgrade.code-snippets diff --git a/.vscode/topgrade.code-snippets b/.vscode/topgrade.code-snippets new file mode 100644 index 00000000..b0722d18 --- /dev/null +++ b/.vscode/topgrade.code-snippets @@ -0,0 +1,25 @@ +{ + // Place your topgrade workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and + // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope + // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is + // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: + // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. + // Placeholders with the same ids are connected. + // Example: + // "Print to console": { + // "scope": "javascript,typescript", + // "prefix": "log", + // "body": [ + // "console.log('$1');", + // "$2" + // ], + // "description": "Log output to console" + // } + "Skip Step": { + "scope": "rust", + "prefix": "skipstep", + "body": [ + "return Err(SkipStep(format!(\"$1\").into()));" + ] + } +} \ No newline at end of file diff --git a/src/steps/generic.rs b/src/steps/generic.rs index 1d5cbd67..0caeff1d 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -478,6 +478,11 @@ pub fn spicetify_upgrade(ctx: &ExecutionContext) -> Result<()> { pub fn run_ghcli_extensions_upgrade(ctx: &ExecutionContext) -> Result<()> { let gh = utils::require("gh")?; + let result = Command::new(&gh).args(&["extensions", "list"]).check_output(); + if result.is_err() { + debug!("GH result {:?}", result); + return Err(SkipStep(String::from("GH failed")).into()); + } print_separator("GitHub CLI Extensions"); ctx.run_type() diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index 290465e1..86c4515a 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -70,7 +70,7 @@ fn get_wsl_distributions(wsl: &Path) -> Result> { Ok(output .lines() .filter(|s| !s.is_empty()) - .map(|x| x.replace("\u{0}", "").replace('\r', "")) + .map(|x| x.replace('\u{0}', "").replace('\r', "")) .collect()) }