ScoopInstaller / Extras

📦 The Extras bucket for Scoop.
https://scoop.sh
The Unlicense
1.8k stars 1.36k forks source link

Everything Lite settings files not persisting #6011

Closed redactedscribe closed 3 years ago

redactedscribe commented 3 years ago

Everything (non-Lite) was fixed last year. I don't know if the non-Lite version is still working, but Everything Lite is certainly not persisting any files in its persist directory. Maybe the same fix can be applied to Everything Lite?

Thanks.

everything-lite 1.4.1.1005

Ash258 commented 3 years ago

Exactly same manual persists in both manifeests

https://github.com/lukesampson/scoop-extras/blob/270515fc86cd24920b004a27c23dc07141917427/bucket/everything.json#L16-L23

https://github.com/lukesampson/scoop-extras/blob/270515fc86cd24920b004a27c23dc07141917427/bucket/everything-lite.json#L16-L23

redactedscribe commented 3 years ago

@Ash258

scoop uninstall everything-lite:

Uninstalling 'everything-lite' (1.4.1.1005).
Running uninstaller script...
Removing shim for 'Everything'.
Removing shim for 'Everything-lite'.
Removing shortcut ~\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Scoop Apps\Everything Lite.lnk
Unlinking C:\Users\user\scoop\apps\everything-lite\current
'everything-lite' was uninstalled.
rm ~\scoop\apps\everything-lite
rm ~\scoop\persist\everything-lite
scoop cache rm everything-lite

scoop install everything-lite:

Running pre-install script...
Linking C:\Users\user\scoop\apps\everything-lite\current => D:\!_scoop\apps\everything-lite\1.4.1.1005
Creating shim for 'Everything'.
Creating shim for 'Everything-lite'.
Creating shortcut for Everything Lite (Everything.exe)
'everything-lite' (1.4.1.1005) was installed successfully!

Run everything-lite. Run as administrator when the program asks and wait for the indexing to finish. Quit.

ls ~\scoop\persist\everything-lite shows nothing. ls ~\scoop\apps\everything-lite shows the program's files and Everything.ini and Everything.db.

Ash258 commented 3 years ago

From the manifest it is clear that the persisted data are copied on uninstallation, so they obviously cannot be there when you do not uninstall it.

redactedscribe commented 3 years ago

You are right. The data is copied on uninstallation. I believe this approach is done due to the ini file being written atomically. A response I received from the developer:

Everything will automatically generate a new Everything.ini when you exit Everything.

When you exit Everything, Everything will save your settings to %APPDATA%\Everything\Everything.ini.tmp and then rename: %APPDATA%\Everything\Everything.ini.tmp to: %APPDATA%\Everything\Everything.ini

This rename is consider atomic (this means there can never be a partially written Everything.ini)

For anyone interested: Since the configuration is only stored to the persist folder on uninstallation, the simplest way I've found to keep an up-to-date Everything.ini synced to the cloud is by setting Everything to store its settings to %AppData%\Everything, and syncing that folder. Everything maintains an Everything.ini in its install folder that reads app_data=1, and so when uninstalling the program via Scoop, this is the only ini that will be copied to Scoop's persist folder, i.e. your actual settings are only stored at %AppData%\Everything so don't rely on Scoop at this point (which is what I normally do as I sync the entire persist folder to the cloud).

snowman commented 2 years ago

TLDR; Backup current or %APPDATA%\Everything (you need to set app_data=1 first) directory manually instead of persist directory, which only synced after uninstall (this means the ini file in persist directory is outdated if you backup without uninstalling first)

Get-ChildItem "$env:USERPROFILE\scoop\apps\everything\current\*" -Include 'Everything.ini', 'Everything.db', 'Bookmarks.csv', 'Search History.csv'

see #4485