mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-12-25 07:19:42 -05:00
Prevent overwriting of portable config on update
* Move portable configuration files into a config subfolder from the executable. This prevents overwriting the stored config when the application is updated in-place. * Use .portable file to signal a portable app * Fix #4751
This commit is contained in:
parent
9d10792640
commit
b7104be689
@ -987,13 +987,15 @@ build() {
|
||||
cpack -G "${CPACK_GENERATORS};${build_generators}"
|
||||
|
||||
# Inject the portable config into the zip build and rename
|
||||
touch .portable
|
||||
for filename in ${APP_NAME}-*.zip; do
|
||||
logInfo "Creating portable zip file"
|
||||
local folder=$(echo ${filename} | sed -r 's/(.*)\.zip/\1/')
|
||||
python -c 'import zipfile,sys ; zipfile.ZipFile(sys.argv[1],"a").write(sys.argv[2],sys.argv[3])' \
|
||||
${filename} ${SRC_DIR}/share/keepassxc.ini ${folder}/keepassxc.ini
|
||||
${filename} .portable ${folder}/.portable
|
||||
mv ${filename} ${folder}-portable.zip
|
||||
done
|
||||
rm .portable
|
||||
|
||||
mv "${APP_NAME}-"*.* ../
|
||||
else
|
||||
|
@ -1,10 +0,0 @@
|
||||
[General]
|
||||
UpdateCheckMessageShown=false
|
||||
LastActiveDatabase=@Invalid()
|
||||
LastOpenedDatabases=@Invalid()
|
||||
HideWindowOnCopy=false
|
||||
MinimizeOnCopy=true
|
||||
|
||||
[GUI]
|
||||
HideUsernames=false
|
||||
HidePasswords=true
|
@ -427,10 +427,10 @@ Config::Config(const QString& fileName, QObject* parent)
|
||||
Config::Config(QObject* parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
// Check if portable config is present (use it also to store local config)
|
||||
QString portablePath = QDir::fromNativeSeparators(QCoreApplication::applicationDirPath()) + "/keepassxc.ini";
|
||||
if (QFile::exists(portablePath)) {
|
||||
init(portablePath);
|
||||
// Check if we are running in portable mode, if so store the config files local to the app
|
||||
auto portablePath = QCoreApplication::applicationDirPath().append("/%1");
|
||||
if (QFile::exists(portablePath.arg(".portable"))) {
|
||||
init(portablePath.arg("config/keepassxc.ini"), portablePath.arg("config/keepassxc_local.ini"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user