Alex-Rose / fb-messenger-cli

fb-messenger-cli, console Facebook messenger
761 stars 99 forks source link

Add dotfiles to user directory #213

Open hectron opened 5 years ago

hectron commented 5 years ago

Problem

Whenever a user has to wipe out their .kryptonite or .settings, they have to navigate to wherever fb-messenger-cli is installed. In addition, the file names .kryptonite and .settings do not make much sense if they are found elsewhere.

Proposal

This pull request:

In addition to this, it fixes the regression tests, so that whenever they are run, a users' settings are not altered. The tests also now won't ping @Alex-Rose directly. :wink:

p1ho commented 5 years ago

I like the direction you're taking this, but just a few questions.

  1. Because those 2 files were intended to stay inside the folder, it was unnecessary to give them the .fbmessenger prefix. Could you give a scenario where users would find those 2 files elsewhere?

  2. Would moving those files out of the installation folder mean that when fb-messenger-cli is being uninstalled, the 2 files would stay intact instead of being wiped? Also, would there be permission issues (Say program tries to create settings file and credential file in a folder where it does not have write permission)?

  3. If wiping those 2 files is a desired functionality, would it be better to instead create flags for it, so you could, for example, call $ fb-messenger-cli --wipe-login or $ fb-messenger-cli --wipe-settings to interact with those 2 files?

hectron commented 5 years ago

Thanks for the follow up, @p1ho! I appreciate you taking the time to ask questions.

  1. I figured FB Messenger CLI might want to follow the convention that most command line programs follow: storing configuration files in a user's home directory.
  2. The files would stay in tact after removing the software. I do not know if it's standard behavior to remove the configuration itself upon removing software. 2.1. That's a great question! I do not think a user can run into installation problems in their home directory (assuming they were able to install the CLI), but they can run into installation problems if they set FB_MESSENGER_DATA_DIR to a folder they do not have permission to write to.
  3. I like having transparency into how an application is configured, and am an advocate for home directory dot files. If this approach doesn't seem like the right approach, a flag to wipe those two files would be the next proposed solution!
p1ho commented 5 years ago

Thanks for answering! I'd say everyone has their own habits, so I won't be too opinionated on this.

On Windows, while it's not standard behavior to remove previous configuration, uninstallers usually prompt users whether they want to do that on uninstall (it'd be like a checkbox in the GUI).

Alex-Rose commented 5 years ago

Hi @hectron I'm going to try your PR especially to see how it works out on Windows. Sorry for the late response, as you can imagine we're pretty busy with work and all...

Thanks for your contribution!

hectron commented 5 years ago

@Alex-Rose , I think there's a bug where if you log in for the first time in a while, it does a different flow than when you've already been signed in, which results in an infinite loop.

I've had success by closing the app and trying again. However, the last few times my account has been flagged by Facebook as fraudulent, so I haven't tried to use the app too much to diagnose.

p1ho commented 5 years ago

@Alex-Rose , I think there's a bug where if you log in for the first time in a while, it does a different flow than when you've already been signed in, which results in an infinite loop.

I've had success by closing the app and trying again. However, the last few times my account has been flagged by Facebook as fraudulent, so I haven't tried to use the app too much to diagnose.

I can confirm this happened on my machine as well.