diff --git a/Flow.Launcher.Core/ExternalPlugins/Environments/PythonEnvironment.cs b/Flow.Launcher.Core/ExternalPlugins/Environments/PythonEnvironment.cs
index 455ee096da6..89286dfb0f9 100644
--- a/Flow.Launcher.Core/ExternalPlugins/Environments/PythonEnvironment.cs
+++ b/Flow.Launcher.Core/ExternalPlugins/Environments/PythonEnvironment.cs
@@ -11,6 +11,8 @@ namespace Flow.Launcher.Core.ExternalPlugins.Environments
{
internal class PythonEnvironment : AbstractPluginEnvironment
{
+ private static readonly string ClassName = nameof(PythonEnvironment);
+
internal override string Language => AllowedLanguage.Python;
internal override string EnvName => DataLocation.PythonEnvironmentName;
@@ -39,9 +41,20 @@ internal override void InstallEnvironment()
// Python 3.11.4 is no longer Windows 7 compatible. If user is on Win 7 and
// uses Python plugin they need to custom install and use v3.8.9
- JTF.Run(() => DroplexPackage.Drop(App.python_3_11_4_embeddable, InstallPath));
+ JTF.Run(async () =>
+ {
+ try
+ {
+ await DroplexPackage.Drop(App.python_3_11_4_embeddable, InstallPath);
- PluginsSettingsFilePath = ExecutablePath;
+ PluginsSettingsFilePath = ExecutablePath;
+ }
+ catch (System.Exception e)
+ {
+ API.ShowMsgError(API.GetTranslation("failToInstallPythonEnv"));
+ API.LogException(ClassName, "Failed to install Python environment", e);
+ }
+ });
}
internal override PluginPair CreatePluginPair(string filePath, PluginMetadata metadata)
diff --git a/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptEnvironment.cs b/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptEnvironment.cs
index 12965286f47..724ae20f46c 100644
--- a/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptEnvironment.cs
+++ b/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptEnvironment.cs
@@ -11,6 +11,8 @@ namespace Flow.Launcher.Core.ExternalPlugins.Environments
{
internal class TypeScriptEnvironment : AbstractPluginEnvironment
{
+ private static readonly string ClassName = nameof(TypeScriptEnvironment);
+
internal override string Language => AllowedLanguage.TypeScript;
internal override string EnvName => DataLocation.NodeEnvironmentName;
@@ -34,9 +36,20 @@ internal override void InstallEnvironment()
{
FilesFolders.RemoveFolderIfExists(InstallPath, (s) => API.ShowMsgBox(s));
- JTF.Run(() => DroplexPackage.Drop(App.nodejs_16_18_0, InstallPath));
+ JTF.Run(async () =>
+ {
+ try
+ {
+ await DroplexPackage.Drop(App.nodejs_16_18_0, InstallPath);
- PluginsSettingsFilePath = ExecutablePath;
+ PluginsSettingsFilePath = ExecutablePath;
+ }
+ catch (System.Exception e)
+ {
+ API.ShowMsgError(API.GetTranslation("failToInstallTypeScriptEnv"));
+ API.LogException(ClassName, "Failed to install TypeScript environment", e);
+ }
+ });
}
internal override PluginPair CreatePluginPair(string filePath, PluginMetadata metadata)
diff --git a/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptV2Environment.cs b/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptV2Environment.cs
index 6960b79c9a7..6a32664a13a 100644
--- a/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptV2Environment.cs
+++ b/Flow.Launcher.Core/ExternalPlugins/Environments/TypeScriptV2Environment.cs
@@ -11,6 +11,8 @@ namespace Flow.Launcher.Core.ExternalPlugins.Environments
{
internal class TypeScriptV2Environment : AbstractPluginEnvironment
{
+ private static readonly string ClassName = nameof(TypeScriptV2Environment);
+
internal override string Language => AllowedLanguage.TypeScriptV2;
internal override string EnvName => DataLocation.NodeEnvironmentName;
@@ -34,9 +36,20 @@ internal override void InstallEnvironment()
{
FilesFolders.RemoveFolderIfExists(InstallPath, (s) => API.ShowMsgBox(s));
- JTF.Run(() => DroplexPackage.Drop(App.nodejs_16_18_0, InstallPath));
+ JTF.Run(async () =>
+ {
+ try
+ {
+ await DroplexPackage.Drop(App.nodejs_16_18_0, InstallPath);
- PluginsSettingsFilePath = ExecutablePath;
+ PluginsSettingsFilePath = ExecutablePath;
+ }
+ catch (System.Exception e)
+ {
+ API.ShowMsgError(API.GetTranslation("failToInstallTypeScriptEnv"));
+ API.LogException(ClassName, "Failed to install TypeScript environment", e);
+ }
+ });
}
internal override PluginPair CreatePluginPair(string filePath, PluginMetadata metadata)
diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index bf6cb674e95..a9694eba84f 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -34,6 +34,10 @@
Please try again
Unable to parse Http Proxy
+
+ Failed to install TypeScript environment. Please try again later
+ Failed to install Python environment. Please try again later.
+
Failed to register hotkey "{0}". The hotkey may be in use by another program. Change to a different hotkey, or exit another program.
Failed to unregister hotkey "{0}". Please try again or see log for details