Skip to content

Commit

Permalink
Merge pull request #119 from lsbloxx/fix-config-mess
Browse files Browse the repository at this point in the history
fixed loading multiple config files to one, see #118
  • Loading branch information
carnager committed Mar 14, 2018
2 parents b6514f9 + b14e1c9 commit 8a5a12e
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 17 deletions.
12 changes: 9 additions & 3 deletions README.md
Expand Up @@ -77,14 +77,20 @@ in a convenient way using [rofi](https://github.com/DaveDavenport/rofi).

## Configuration

rofi-pass may read its configuration values from `/etc/rofi-pass.conf` and/or `$HOME/.config/rofi-pass/config`.
You can also set a configuration by using the environment variable ROFI_PASS_CONFIG (see example below).
For an example configuration please take a look at the included `config.example` file.
rofi-pass may read its configuration values from different locations in the following order:
* `ROFI_PASS_CONFIG` (environment variable)
* `$HOME/.config/rofi-pass/config`
* `/etc/rofi-pass.conf`
rofi-pass only loads the first existing file.
In case no config file exists, rofi-pass uses its internal default values.
You can set the environment variable like this:

```
ROFI_PASS_CONFIG="$HOME/path/to/config" rofi-pass
```

For an example configuration please take a look at the included `config.example` file.

## Extras

### addpass
Expand Down
34 changes: 20 additions & 14 deletions rofi-pass
Expand Up @@ -710,24 +710,30 @@ Usage:
EOF
}

get_config_file () {
configs=(
"$ROFI_PASS_CONFIG"
"$HOME/.config/rofi-pass/config"
"/etc/rofi-pass.conf"
)

# return the first config file with a valid path
for config in "${configs[@]}"; do
# '! -z' is needed in case ROFI_PASS_CONFIG is not set
if [[ ! -z "${config}" && -f "${config}" ]]; then
printf "%s" "$config"
return
fi
done
}

main () {
# enable extended globbing
shopt -s nullglob globstar

# check if global config exists and load it
if [[ -f /etc/rofi-pass.conf ]]; then
source /etc/rofi-pass.conf
fi

# check if local config exists and load it
if [[ -f "$HOME/.config/rofi-pass/config" ]]; then
source "$HOME/.config/rofi-pass/config"
fi

# check if path to config in environment variable exists and load it
if [[ -f "$ROFI_PASS_CONFIG" ]]; then
source "$ROFI_PASS_CONFIG"
fi
# load config file
config_file="$(get_config_file)"
[[ ! -z "$config_file" ]] && source "$config_file"

# create tmp dir
if [[ ! -d "$HOME/.cache/rofi-pass" ]]; then
Expand Down

0 comments on commit 8a5a12e

Please sign in to comment.