1
0
mirror of https://github.com/nvbn/thefuck.git synced 2024-10-05 18:31:10 +01:00

Follow the XDG Base Directory Specification

This commit is contained in:
mcarton 2015-10-16 16:52:03 +02:00
parent 3da26192cb
commit 4a48108c69
2 changed files with 12 additions and 4 deletions

View File

@ -224,7 +224,7 @@ Bundled, but not enabled by default:
## Creating your own rules
For adding your own rule you should create `your-rule-name.py`
in `~/.thefuck/rules`. The rule should contain two functions:
in `~/.config/thefuck/rules`. The rule should contain two functions:
```python
match(command: Command) -> bool
@ -241,7 +241,7 @@ and optional `enabled_by_default`, `requires_output` and `priority` variables.
`Command` has three attributes: `script`, `stdout` and `stderr`.
*Rules api changed in 3.0:* For accessing settings in rule you need to import it with `from thefuck.conf import settings`.
`settings` is a special object filled with `~/.thefuck/settings.py` and values from env ([see more below](#settings)).
`settings` is a special object filled with `~/.config/thefuck/settings.py` and values from env ([see more below](#settings)).
Simple example of the rule for running script with `sudo`:
@ -271,7 +271,7 @@ requires_output = True
## Settings
The Fuck has a few settings parameters which can be changed in `~/.thefuck/settings.py`:
The Fuck has a few settings parameters which can be changed in `$XDG_CONFIG_HOME/thefuck/settings.py` (`$XDG_CONFIG_HOME` defaults to `~/.config`):
* `rules` – list of enabled rules, by default `thefuck.conf.DEFAULT_RULES`;
* `exclude_rules` – list of disabled rules, by default `[]`;

View File

@ -26,7 +26,7 @@ ENV_TO_ATTR = {'THEFUCK_RULES': 'rules',
'THEFUCK_PRIORITY': 'priority',
'THEFUCK_DEBUG': 'debug'}
SETTINGS_HEADER = u"""# ~/.thefuck/settings.py: The Fuck settings file
SETTINGS_HEADER = u"""# The Fuck settings file
#
# The rules are defined as in the example bellow:
#
@ -73,7 +73,15 @@ class Settings(dict):
def _setup_user_dir(self):
"""Returns user config dir, create it when it doesn't exist."""
# for backward compatibility, use `~/.thefuck` if it exists
user_dir = Path(os.path.expanduser('~/.thefuck'))
if not user_dir.is_dir():
default_xdg_config_dir = os.path.expanduser("~/.config")
xdg_config_dir = os.getenv("XDG_CONFIG_HOME", default_xdg_config_dir)
user_dir = Path(os.path.join(xdg_config_dir, 'thefuck'))
rules_dir = user_dir.joinpath('rules')
if not rules_dir.is_dir():
rules_dir.mkdir(parents=True)