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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions