Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ephemeral Tools #54

Closed
different-name opened this issue Aug 18, 2024 · 3 comments
Closed

Ephemeral Tools #54

different-name opened this issue Aug 18, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@different-name
Copy link
Owner

Implement commands that perform the following:

  • List ephemeral files in the current user's home directory
  • List ephemeral files at the root level
  • List files in persisted directories that are not linked or mounted elsewhere

For listing ephemeral files - persisted files/directories should be parsed from the impermanence config to be ignored when searching for ephemeral files, along with a list of ephemeral directories to manually exclude (directories known & desired to be ephemeral)

The excluded directories should be what's currently persisted by the current system, so it isn't viable to read the config from $FLAKE, it's also not viable to use an environmental variable to list the excluded directories, as this wouldn't update until the user logs back in. Could generate the script as part of building the configuration, but I can't think of a clean way to do this

Blocked until I can figure out a clean way to:

  • Package the script
  • Communicate the directories that should be excluded to the script
@different-name different-name added the enhancement New feature or request label Aug 18, 2024
@different-name
Copy link
Owner Author

Might be best to do something like this, where a script is generated using writeShellApplication with the excluded paths

users.users.different.packages = [
  (pkgs.writeShellApplication {
    text = "";
    name = "ephtools";
  })
];

@different-name
Copy link
Owner Author

Could add an option to search from a directory, instead of having separate commands for root and home directories

@different-name
Copy link
Owner Author

Usage: ephtools <command> [search paths...]

Commands:
  new   - List new files & directories that are not yet persisted
  stray - List stray files & directories that are in persistent storage, but are not in the persistence config

Arguments:
  search paths - Override the search directories with one or more absolute paths

Example:

$ ephtools new /home/different
/home/different/.mozilla/firefox/profiles.ini
/home/different/.mozilla/firefox/Crash Reports/InstallTime20240812083845
/home/different/.mozilla/firefox/zplh5wi6.default/key4.db
/home/different/.mozilla/firefox/zplh5wi6.default/webappsstore.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/protections.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/cookies.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/SiteSecurityServiceState.bin
/home/different/.mozilla/firefox/zplh5wi6.default/times.json
/home/different/.mozilla/firefox/zplh5wi6.default/bounce-tracking-protection.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/compatibility.ini
/home/different/.mozilla/firefox/zplh5wi6.default/favicons.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/storage/default/https+++www.mozilla.org/ls/usage
/home/different/.mozilla/firefox/zplh5wi6.default/storage/default/https+++www.mozilla.org/ls/data.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/storage/default/https+++www.mozilla.org/.metadata-v2
/home/different/.mozilla/firefox/zplh5wi6.default/storage/ls-archive.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/1451318868ntouromlalnodry--epcr.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/1451318868ntouromlalnodry--epcr.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/3870112724rsegmnoittet-es.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/2823318777ntouromlalnodry--naod.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/1657114595AmcateirvtiSty.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/3561288849sdhlie.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/2918063365piupsah.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/2918063365piupsah.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/2823318777ntouromlalnodry--naod.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/3561288849sdhlie.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/1657114595AmcateirvtiSty.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/idb/3870112724rsegmnoittet-es.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/storage/permanent/chrome/.metadata-v2
/home/different/.mozilla/firefox/zplh5wi6.default/pkcs11.txt
/home/different/.mozilla/firefox/zplh5wi6.default/cert9.db
/home/different/.mozilla/firefox/zplh5wi6.default/shield-preference-experiments.json
/home/different/.mozilla/firefox/zplh5wi6.default/content-prefs.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/prefs.js
/home/different/.mozilla/firefox/zplh5wi6.default/storage.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/sessionstore-backups/recovery.jsonlz4
/home/different/.mozilla/firefox/zplh5wi6.default/favicons.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/.parentlock
/home/different/.mozilla/firefox/zplh5wi6.default/search.json.mozlz4
/home/different/.mozilla/firefox/zplh5wi6.default/extensions.json
/home/different/.mozilla/firefox/zplh5wi6.default/cookies.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/datareporting/glean/db/data.safe.bin
/home/different/.mozilla/firefox/zplh5wi6.default/datareporting/glean/events/prototype-no-code-events
/home/different/.mozilla/firefox/zplh5wi6.default/datareporting/glean/events/pageload
/home/different/.mozilla/firefox/zplh5wi6.default/datareporting/glean/events/events
/home/different/.mozilla/firefox/zplh5wi6.default/datareporting/glean/events/background-update
/home/different/.mozilla/firefox/zplh5wi6.default/datareporting/state.json
/home/different/.mozilla/firefox/zplh5wi6.default/formhistory.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/permissions.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/AlternateServices.bin
/home/different/.mozilla/firefox/zplh5wi6.default/containers.json
/home/different/.mozilla/firefox/zplh5wi6.default/webappsstore.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/addons.json
/home/different/.mozilla/firefox/zplh5wi6.default/addonStartup.json.lz4
/home/different/.mozilla/firefox/zplh5wi6.default/extension-preferences.json
/home/different/.mozilla/firefox/zplh5wi6.default/handlers.json
/home/different/.mozilla/firefox/zplh5wi6.default/places.sqlite
/home/different/.mozilla/firefox/zplh5wi6.default/places.sqlite-wal
/home/different/.mozilla/firefox/zplh5wi6.default/sessionCheckpoints.json
/home/different/.mozilla/firefox/zplh5wi6.default/ExperimentStoreData.json
/home/different/.config/dconf/user
/home/different/.config/Thunar/uca.xml
/home/different/.config/pulse/cookie
/home/different/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
/home/different/.local/share/aspyr-media/borderlands 2/willowgame/savedata/76561198836163955/profile.bin
/home/different/.local/share/aspyr-media/borderlands 2/willowgame/savedata/76561198836163955/steam_autocloud.vdf
/home/different/.local/share/nix/repl-history
/home/different/.local/share/mimeapps.list
/home/different/.local/share/recently-used.xbel
/home/different/.local/state/lesshst

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant