Skip to content

Add Snap package Interface so it can use XDG .config/cheat/conf.yml location #8

@finchd

Description

@finchd

Is your feature request related to a problem? Please describe.
It isn't currently possible to use the Snap package with the standard conf.yml file location:

$ export CHEAT_CONFIG_PATH=~/.config/cheat/conf.yml
$ cheat init
failed to load config: could not read config file: open /home/finchd/.config/cheat/conf.yml: permission denied

This is a security feature of snaps, that they can't access the user homedir.
Instead the config (and community cheatsheets) are installed to: ~/snap/cheat/common/.config/cheat/conf.yml
Which is difficult to find later, difficult to include in a dotfiles repo, etc

Describe the solution you'd like
Similar to lucagrulla/cw, use a Snap Interface. With cw, you can run sudo snap connect cw-sh:dot-aws-config-credentials after installing the snap, to give it access to ~/.aws/credentials for each snap user.

A Snap Interface for cheat could be called 'dot-cheat-config' and give the package access to reach ~/.config/cheat/* to store cheatsheets and the conf.yml in.

Describe alternatives you've considered
Running cheat init without exporting CHEAT_CONFIG_PATH and letting it write to ~/snap/cheat/ works, and does echo out the location of the new conf.yml so the user can find the config the first time.
This isn't a major showstopper by any means, but seems like a reasonable packaging addition.

Additional context

Version Info:

$ cheat -v
3.8.0
$ snap --version
snap 2.44.2+20.04
snapd 2.44.2+20.04
series 16
ubuntu 20.04
kernel 5.4.0-21-generic

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions