Skip to content

Commit 9da1c46

Browse files
IEP-1554: Launch and Download EIM (#1251)
IEP-1554: Launch and Download of EIM added --------- Co-authored-by: Kondal Kolipaka <[email protected]>
1 parent 332994c commit 9da1c46

21 files changed

+1181
-115
lines changed

bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFEnvironmentVariables.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ public class IDFEnvironmentVariables
5252
public static final String IDF_CCACHE_ENABLE = "IDF_CCACHE_ENABLE"; //$NON-NLS-1$
5353

5454
public static final String ESP_IDF_EIM_ID = "ESP_IDF_EIM_ID"; //$NON-NLS-1$
55+
56+
public static final String EIM_PATH = "EIM_PATH"; //$NON-NLS-1$
57+
58+
public static final String SYSTEM_PATH = "SYSTEM_PATH"; //$NON-NLS-1$
5559

5660
/**
5761
* @param variableName Environment variable Name

bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/Messages.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ public class Messages extends NLS
5050
public static String OldConfigExportCompleteSuccessMsg;
5151
public static String OldConfigExportCompleteFailMsgTitle;
5252
public static String OldConfigExportCompleteFailMsg;
53+
54+
public static String EIMNotInApplicationsTitle;
55+
public static String EIMNotInApplicationsMessage;
5356

5457
static
5558
{

bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ IDFBuildConfiguration_ParseCommand=Parse Compile Commands File
1919
IncreasePartitionSizeTitle=Low Application Partition Size
2020
IncreasePartitionSizeMessage=Less than 30% of application partition size is free({0} of {1} bytes), would you like to increase it? Please click <a href={2}>here</a> to check more details.
2121
ToolsInitializationDifferentPathMessageBoxTitle=Different IDF path found in the config file
22-
ToolsInitializationEimMissingMsgBoxTitle=ESP-IDF Not Found
23-
ToolsInitializationEimMissingMsgBoxMessage=ESP-IDF is not found on your system. To use the IDE, install ESP-IDF using <a href="{0}">EIM - GUI Installer</a>. \n\nOnce installed, the IDE will automatically detect ESP-IDF. You can verify and activate it from the ESP-IDF Manager, accessible via the menu: Espressif > ESP-IDF Manager.\n\n
22+
ToolsInitializationEimMissingMsgBoxTitle=ESP-IDF Installation Required
23+
ToolsInitializationEimMissingMsgBoxMessage=ESP-IDF is not currently installed on your system.\n\nThe IDE can automatically download and launch the EIM - GUI Installer to help you install it.\n\nWould you like to proceed with the installation?\n\nOnce complete, ESP-IDF will be detected automatically. You can also manage installations later from the ESP-IDF Manager (Espressif > ESP-IDF Manager).
2424
ToolsInitializationDifferentPathMessageBoxMessage=A different ESP-IDF path was found in the esp_idf.json.json configuration file. Do you want to install the tools in the new path or the old path? Please click on the appropriate button.\nNew Path: {0}\nOld Path: {1}
2525
ToolsInitializationDifferentPathMessageBoxOptionYes=Yes
2626
ToolsInitializationDifferentPathMessageBoxOptionNo=No
@@ -31,11 +31,14 @@ IDFToolChainsMissingErrorMsg=Toolchains are missing. Please use ESP-IDF Manager
3131
NoActiveEspIdfInWorkspaceMsgTitle=ESP-IDF Setup
3232
NoActiveEspIdfInWorkspaceMsg=ESP-IDF is required to use Espressif IDE. Would you like to configure it now?
3333

34+
EIMNotInApplicationsTitle=EIM Not Located in Applications Folder
35+
EIMNotInApplicationsMessage=Espressif Installation Manager (EIM) is not located in the Applications folder.\nRunning EIM from a temporary location (e.g., a mounted disk image) may cause issues during configuration import or tool setup.\nTo avoid problems, please move EIM to the /Applications directory and launch it from there.
36+
3437
OldConfigFoundMsgBoxTitle=Old Configuration Detected
3538
OldConfigFoundMsgBoxMsg=Espressif IDE now uses the EIM system to manage ESP-IDF installations. A legacy configuration was found in your current workspace. Converting it to the EIM format will allow proper environment setup and ensure the IDE works seamlessly with your existing projects. Would you like to convert the configuration now?
3639
OldConfigExportDirectorSelectionDialogTitle=Select Destination
3740
OldConfigExportDirectorSelectionDialogInfo=Choose a directory to save the exported settings.
3841
OldConfigExportCompleteSuccessMsgTitle=Import Successful
3942
OldConfigExportCompleteSuccessMsg=The configuration has been successfully Imported
4043
OldConfigExportCompleteFailMsgTitle=Conversion Failed
41-
OldConfigExportCompleteFailMsg=An error occurred while converting old configuration.
44+
OldConfigExportCompleteFailMsg=An error occurred while converting old configuration.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*******************************************************************************
2+
* Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved.
3+
* Use is subject to license terms.
4+
*******************************************************************************/
5+
package com.espressif.idf.core.tools;
6+
7+
/**
8+
* Interface to use for the download listening this can be used in your own classes.
9+
* Added specifically for {@link EimLoader}
10+
* @author Ali Azam Rana <[email protected]>
11+
*
12+
*/
13+
public interface DownloadListener
14+
{
15+
public void onProgress(int percent);
16+
public void onCompleted(String filePath);
17+
public void onError(String message, Exception e);
18+
19+
}

bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimConstants.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package com.espressif.idf.core.tools;
22

3+
import java.io.File;
4+
import java.nio.file.Paths;
5+
36
public interface EimConstants
47
{
58
String EIM_JSON = "eim_idf.json"; //$NON-NLS-1$
69

7-
String EIM_POSIX_DIR = System.getProperty("user.home").concat("/.espressif/tools/"); //$NON-NLS-1$//$NON-NLS-2$
10+
String EIM_POSIX_DIR = System.getProperty("user.home").concat(File.separator + ".espressif" + File.separator + "tools" + File.separator); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
11+
12+
String EIM_WIN_ESPRESSIF_DIR = "C:" + File.separator + "Espressif"; //$NON-NLS-1$ //$NON-NLS-2$
813

9-
String EIM_WIN_DIR = "C:\\Espressif\\tools\\"; //$NON-NLS-1$
14+
String EIM_WIN_DIR = EIM_WIN_ESPRESSIF_DIR + File.separator + "tools" + File.separator; //$NON-NLS-1$
1015

1116
String EIM_WIN_PATH = EIM_WIN_DIR + EIM_JSON;
1217

@@ -19,4 +24,7 @@ public interface EimConstants
1924
String TOOL_SET_CONFIG_LEGACY_CONFIG_FILE = "tool_set_config.json"; //$NON-NLS-1$
2025

2126
String OLD_CONFIG_EXPORTED_FLAG = "OLD_CONFIG_EXPORTED_FLAG"; //$NON-NLS-1$
27+
28+
String USER_EIM_DIR = Paths.get(System.getProperty("user.home"), ".espressif", "eim_gui").toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
29+
2230
}

0 commit comments

Comments
 (0)