O seguinte scriptlet é apenas uma versão mais completa do código do @ chaos . Minhas motivações foram
- eu uso mais de um perfil do Firefox.
- Eu coloquei meus perfis do Firefox em uma pasta / diretório diferente do padrão: consulte
FIREFOX_PROFILE_ROOT
no script / let, que você provavelmente deve editar (de volta ao padrão) ou use o código mais recente profiles.ini
-parsing ( veja o link abaixo).
- Eu queria ver mais informações sobre meus complementos, pois estava com um problema que se mostrou relacionado à versão de extensão.
- Eu não codifiquei por alguns dias
:-)
Você também pode {ver a versão mais recente deste código, usar a versão mais recente como um arquivo de script para download} aqui . Observe que o código mais recente também analisa profiles.ini
(usando os caminhos de perfil que você define lá) em vez de depender (como abaixo) de informar ao código onde encontrar seus perfis.
### List add-ons in all local Firefox profiles. Requires:
### * users to know where they keep their Firefox profiles. TODO: parse 'profiles.ini'
### * python (to parse the add-ons JSON)
### Tested on Linux with Python versions={2.7.9, 3.4.2}.
### Copyright (C) 2017 Tom Roche <[email protected]>
### This work is licensed under the Creative Commons Attribution 4.0 International License.
### To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
#FIREFOX_PROFILE_ROOT="${HOME}/.mozilla/firefox" # default Firefox path, which ...
FIREFOX_PROFILE_ROOT="${HOME}/firefox" # ... I override, but you probably should not!
FIREFOX_ADDONS_FILENAME='addons.json' # default Firefox value
FIREFOX_ADDONS_FP_LIST='' # default empty
### find add-ons JSON files:
if [[ ! -r "${FIREFOX_PROFILE_ROOT}" ]] ; then
>&2 echo "ERROR: cannot read FIREFOX_PROFILE_ROOT='${FIREFOX_PROFILE_ROOT}', exiting ..."
else
FIREFOX_ADDONS_FP_LIST="$(find "${FIREFOX_PROFILE_ROOT}/" -type f -name "${FIREFOX_ADDONS_FILENAME}" | fgrep -ve 'blocklists')"
# echo -e "FIREFOX_ADDONS_FP_LIST=\n${FIREFOX_ADDONS_FP_LIST}" # debugging
if [[ ( -z "${FIREFOX_ADDONS_FP_LIST}" ) ||
( "$(echo ${FIREFOX_ADDONS_FP_LIST} | wc -l)" == '0' ) ]] ; then
>&2 echo "ERROR: found no add-ons files in Firefox profiles under '${FIREFOX_PROFILE_ROOT}', exiting ..."
else
for FIREFOX_ADDONS_FP in ${FIREFOX_ADDONS_FP_LIST} ; do
echo "${FIREFOX_ADDONS_FP} contains:"
### Parse add-ons file using python, so
### * gotta export the envvar
export FIREFOX_ADDONS_FP
### * indenting becomes important
python -c '
import json, os
with open(os.environ.get("FIREFOX_ADDONS_FP")) as addons_file:
addons_data = json.load(addons_file)
for (i, addon) in enumerate(addons_data["addons"]):
print("add-on name=" + addon["name"])
print(" version=" + addon["version"])
print(" URI=" + addon["learnmoreURL"])
print("") # newline
'
echo # newline
done
fi
fi