Skip to content

Commit f45097c

Browse files
committed
Fall back to $HOME/.fex-emu if it exists
Signed-off-by: crueter <[email protected]>
1 parent 3a8cd48 commit f45097c

File tree

1 file changed

+48
-27
lines changed

1 file changed

+48
-27
lines changed

Source/Common/Config.cpp

Lines changed: 48 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -556,23 +556,29 @@ fextl::string GetDataDirectory(bool Global, const PortableInformation& PortableI
556556
return fextl::fmt::format("{}/fex-emu/", PortableInfo.InterpreterPath);
557557
}
558558

559-
fextl::string DataDir {};
560559
if (Global) {
561-
DataDir = GLOBAL_DATA_DIRECTORY;
562-
} else {
563-
const char* HomeDir = GetHomeDirectory();
564-
const char* DataXDG = getenv("XDG_DATA_HOME");
560+
return GLOBAL_DATA_DIRECTORY;
561+
}
565562

566-
// use ~/.local/share if XDG_DATA_HOME is unset
567-
const std::string fallback = fmt::format("{}/.local/share", HomeDir);
563+
const char* HomeDir = GetHomeDirectory();
564+
const char* DataXDG = getenv("XDG_DATA_HOME");
565+
const fextl::string LegacyDir = fextl::string {HomeDir} + "/.fex-emu";
568566

569-
if (DataOverride) {
570-
// Data override will override the complete directory
571-
DataDir = DataOverride;
572-
} else {
573-
DataDir = DataXDG ? DataXDG : fallback;
574-
DataDir += "/fex-emu/";
575-
}
567+
// If $HOME/.fex-emu exists, use that
568+
if (FHU::Filesystem::Exists(LegacyDir)) {
569+
return LegacyDir;
570+
}
571+
572+
// use ~/.local/share if XDG_DATA_HOME is unset
573+
const std::string fallback = fmt::format("{}/.local/share", HomeDir);
574+
575+
fextl::string DataDir {};
576+
if (DataOverride) {
577+
// Data override will override the complete directory
578+
DataDir = DataOverride;
579+
} else {
580+
DataDir = DataXDG ? DataXDG : fallback;
581+
DataDir += "/fex-emu/";
576582
}
577583

578584
return DataDir;
@@ -600,23 +606,31 @@ fextl::string GetConfigDirectory(bool Global, const PortableInformation& Portabl
600606

601607
fextl::string ConfigDir;
602608
if (Global) {
603-
ConfigDir = GLOBAL_DATA_DIRECTORY;
604-
} else {
605-
const char* HomeDir = GetHomeDirectory();
606-
const char* ConfigXDG = getenv("XDG_CONFIG_HOME");
609+
return GLOBAL_DATA_DIRECTORY;
610+
}
607611

608-
// use ~/.config if XDG_CONFIG_HOME is unset
609-
const std::string fallback = fmt::format("{}/.config", HomeDir);
612+
const char* HomeDir = GetHomeDirectory();
613+
const char* ConfigXDG = getenv("XDG_CONFIG_HOME");
610614

611-
if (ConfigOverride) {
612-
// Config override will override the complete directory
613-
ConfigDir = ConfigOverride;
614-
} else {
615-
ConfigDir = ConfigXDG ? ConfigXDG : fallback;
616-
ConfigDir += "/fex-emu/";
617-
}
615+
const fextl::string LegacyDir = fextl::string {HomeDir} + "/.fex-emu";
616+
617+
// If $HOME/.fex-emu exists, use that
618+
if (FHU::Filesystem::Exists(LegacyDir)) {
619+
return LegacyDir;
620+
}
621+
622+
// use ~/.config if XDG_CONFIG_HOME is unset
623+
const std::string fallback = fmt::format("{}/.config", HomeDir);
624+
625+
if (ConfigOverride) {
626+
// Config override will override the complete directory
627+
ConfigDir = ConfigOverride;
628+
} else {
629+
ConfigDir = ConfigXDG ? ConfigXDG : fallback;
630+
ConfigDir += "/fex-emu/";
618631
}
619632

633+
620634
return ConfigDir;
621635
}
622636

@@ -638,6 +652,13 @@ fextl::string GetCacheDirectory() {
638652
const char* HomeDir = GetHomeDirectory();
639653
const char* CacheXDG = getenv("XDG_CACHE_HOME");
640654

655+
const fextl::string LegacyDir = fextl::string {HomeDir} + "/.fex-emu";
656+
657+
// If $HOME/.fex-emu exists, use that
658+
if (FHU::Filesystem::Exists(LegacyDir)) {
659+
return LegacyDir;
660+
}
661+
641662
// use ~/.cache if XDG_CACHE_HOME is unset
642663
const std::string fallback = fmt::format("{}/.cache", HomeDir);
643664

0 commit comments

Comments
 (0)