mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
GP-1164: Removing spaces from application name when creating user
settings/cache/temp directories
This commit is contained in:
parent
2ee2c56e38
commit
db81fe8804
3 changed files with 20 additions and 8 deletions
|
@ -15,6 +15,8 @@
|
||||||
*/
|
*/
|
||||||
package ghidra.framework;
|
package ghidra.framework;
|
||||||
|
|
||||||
|
import utility.application.ApplicationUtilities;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to represent an application's unique identifier. An application identifier is made up
|
* Class to represent an application's unique identifier. An application identifier is made up
|
||||||
* of an application name, an application version, and an application release name.
|
* of an application name, an application version, and an application release name.
|
||||||
|
@ -46,8 +48,8 @@ public class ApplicationIdentifier {
|
||||||
*/
|
*/
|
||||||
public ApplicationIdentifier(ApplicationProperties applicationProperties)
|
public ApplicationIdentifier(ApplicationProperties applicationProperties)
|
||||||
throws IllegalArgumentException {
|
throws IllegalArgumentException {
|
||||||
applicationName =
|
applicationName = ApplicationUtilities
|
||||||
applicationProperties.getApplicationName().replaceAll("\\s", "").toLowerCase();
|
.normalizeApplicationName(applicationProperties.getApplicationName());
|
||||||
if (applicationName.isEmpty()) {
|
if (applicationName.isEmpty()) {
|
||||||
throw new IllegalArgumentException("Application name is undefined.");
|
throw new IllegalArgumentException("Application name is undefined.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,7 +128,7 @@ public class AppCleaner implements GhidraLaunchable {
|
||||||
*/
|
*/
|
||||||
private Set<File> findSettingsDirs(String appName, ApplicationLayout layout) {
|
private Set<File> findSettingsDirs(String appName, ApplicationLayout layout) {
|
||||||
Set<File> discoveredDirs = new LinkedHashSet<>();
|
Set<File> discoveredDirs = new LinkedHashSet<>();
|
||||||
appName = appName.toLowerCase();
|
appName = ApplicationUtilities.normalizeApplicationName(appName);
|
||||||
String userNameAndAppName = SystemUtilities.getUserName() + "-" + appName;
|
String userNameAndAppName = SystemUtilities.getUserName() + "-" + appName;
|
||||||
|
|
||||||
// Legacy default settings directory
|
// Legacy default settings directory
|
||||||
|
@ -191,7 +191,7 @@ public class AppCleaner implements GhidraLaunchable {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Newer cache directories always use a lowercase application name
|
// Newer cache directories always use a lowercase application name
|
||||||
appName = appName.toLowerCase();
|
appName = ApplicationUtilities.normalizeApplicationName(appName);
|
||||||
String userNameAndAppName = SystemUtilities.getUserName() + "-" + appName;
|
String userNameAndAppName = SystemUtilities.getUserName() + "-" + appName;
|
||||||
|
|
||||||
// Current cache directories
|
// Current cache directories
|
||||||
|
@ -233,7 +233,7 @@ public class AppCleaner implements GhidraLaunchable {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Newer temp directories always use a lowercase application name
|
// Newer temp directories always use a lowercase application name
|
||||||
appName = appName.toLowerCase();
|
appName = ApplicationUtilities.normalizeApplicationName(appName);
|
||||||
String userNameAndAppName = SystemUtilities.getUserName() + "-" + appName;
|
String userNameAndAppName = SystemUtilities.getUserName() + "-" + appName;
|
||||||
|
|
||||||
// Current temp directories
|
// Current temp directories
|
||||||
|
|
|
@ -167,7 +167,7 @@ public class ApplicationUtilities {
|
||||||
public static File getDefaultUserTempDir(String applicationName)
|
public static File getDefaultUserTempDir(String applicationName)
|
||||||
throws FileNotFoundException, IOException {
|
throws FileNotFoundException, IOException {
|
||||||
|
|
||||||
String appName = applicationName.toLowerCase();
|
String appName = normalizeApplicationName(applicationName);
|
||||||
|
|
||||||
// Look for Ghidra-specific system property
|
// Look for Ghidra-specific system property
|
||||||
File tempOverrideDir = getSystemPropertyFile(PROPERTY_TEMP_DIR, false);
|
File tempOverrideDir = getSystemPropertyFile(PROPERTY_TEMP_DIR, false);
|
||||||
|
@ -202,7 +202,7 @@ public class ApplicationUtilities {
|
||||||
public static File getDefaultUserCacheDir(ApplicationProperties applicationProperties)
|
public static File getDefaultUserCacheDir(ApplicationProperties applicationProperties)
|
||||||
throws FileNotFoundException, IOException {
|
throws FileNotFoundException, IOException {
|
||||||
|
|
||||||
String appName = applicationProperties.getApplicationName().toLowerCase();
|
String appName = normalizeApplicationName(applicationProperties.getApplicationName());
|
||||||
|
|
||||||
// Look for Ghidra-specific system property
|
// Look for Ghidra-specific system property
|
||||||
File cacheOverrideDir = getSystemPropertyFile(PROPERTY_CACHE_DIR, false);
|
File cacheOverrideDir = getSystemPropertyFile(PROPERTY_CACHE_DIR, false);
|
||||||
|
@ -253,9 +253,9 @@ public class ApplicationUtilities {
|
||||||
public static File getDefaultUserSettingsDir(ApplicationProperties applicationProperties,
|
public static File getDefaultUserSettingsDir(ApplicationProperties applicationProperties,
|
||||||
ResourceFile installationDirectory) throws FileNotFoundException, IOException {
|
ResourceFile installationDirectory) throws FileNotFoundException, IOException {
|
||||||
|
|
||||||
String appName = applicationProperties.getApplicationName().toLowerCase();
|
|
||||||
ApplicationIdentifier applicationIdentifier =
|
ApplicationIdentifier applicationIdentifier =
|
||||||
new ApplicationIdentifier(applicationProperties);
|
new ApplicationIdentifier(applicationProperties);
|
||||||
|
String appName = applicationIdentifier.getApplicationName();
|
||||||
String versionedName = applicationIdentifier.toString();
|
String versionedName = applicationIdentifier.toString();
|
||||||
if (SystemUtilities.isInDevelopmentMode()) {
|
if (SystemUtilities.isInDevelopmentMode()) {
|
||||||
// Add the application's installation directory name to this variable, so that each
|
// Add the application's installation directory name to this variable, so that each
|
||||||
|
@ -321,6 +321,16 @@ public class ApplicationUtilities {
|
||||||
return new File(userSettingsParentDir, userSettingsDirName);
|
return new File(userSettingsParentDir, userSettingsDirName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normalizes the application name by removing spaces and converting to lower case
|
||||||
|
*
|
||||||
|
* @param applicationName The application name
|
||||||
|
* @return The normalized application name
|
||||||
|
*/
|
||||||
|
public static String normalizeApplicationName(String applicationName) {
|
||||||
|
return applicationName.replaceAll("\\s", "").toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets Java's temporary directory in absolute form
|
* Gets Java's temporary directory in absolute form
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue