autospec, plugins: add the option '-C|--config' for selecting a different user configuration file or list of user configuration files
Signed-off-by: Davide Madrisan <davide.madrisan@gmail.com>
This commit is contained in:
parent
8eee8ae037
commit
15f3575b2e
@ -9,6 +9,11 @@ Changes in version 1.14.3
|
||||
* autospec - Davide Madrisan:
|
||||
Add some update debug messages.
|
||||
|
||||
+ improvement
|
||||
* autospec, plugins/* - Davide Madrisan:
|
||||
Add the option '-C|--config' for selecting a different user configuration
|
||||
file or list of user configuration files.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Changes in version 1.14.2
|
||||
|
24
autospec.in
24
autospec.in
@ -62,9 +62,12 @@ function autospec.usage() {
|
||||
-h, --help "$"Print this help, then exit""
|
||||
-V, --version "$"Print version number, then exit""
|
||||
-q, --quiet "$"Run in quiet mode""
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-D, --debug "$"Run in debugging mode (very verbose output)""
|
||||
|
||||
"$"Common options"":
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-C, --config "$"Use an alternate user configuration file""
|
||||
|
||||
"$"Usage"":
|
||||
"$"Use '-u -h', '-s -h', '-x -h', and '--eval -h' to display specific command line options.""
|
||||
|
||||
@ -91,7 +94,7 @@ notify.disable_colors
|
||||
exit 1; }
|
||||
|
||||
. @libdir@/libcfg.lib
|
||||
|
||||
|
||||
# Little helper function for reading args from the commandline.
|
||||
# it automatically handles -a b and -a=b variants, and returns 1 if
|
||||
# we need to shift $3.
|
||||
@ -132,21 +135,28 @@ while (($# > 0)); do
|
||||
notify.warning $"\
|
||||
deprecated option"" \`-r|--colorize': "$"use \`--colors' instead"
|
||||
# for backward compatibility
|
||||
color_scheme="default" ;;
|
||||
--colors)
|
||||
read_arg color_scheme "$@" ||
|
||||
{ shift; args[${#args[*]}]="$1"; } ;;
|
||||
selected_color_scheme="default" ;;
|
||||
-h|--help)
|
||||
let "print_help = 1" ;;
|
||||
-V|--version)
|
||||
let "print_version = 1" ;;
|
||||
--colors)
|
||||
read_arg selected_color_scheme "$@" ||
|
||||
{ shift; args[${#args[*]}]="$1"; } ;;
|
||||
-C|--config)
|
||||
read_arg custom_cfgfile_list "$@" ||
|
||||
{ shift; args[${#args[*]}]="$1"; } ;;
|
||||
*) ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
notify.debug "[${me[0]}, "$"version"" ${me[1]}]"
|
||||
notify.debug "color_scheme = \"$color_scheme\""
|
||||
|
||||
[ "$selected_color_scheme" ] || color_scheme="$selected_color_scheme"
|
||||
|
||||
notify.debug "custom_cfgfile_list = \"$custom_cfgfile_list\""
|
||||
cfg_load_files "$custom_cfgfile_list"
|
||||
|
||||
case "$(( $pck_update + $spec_create + $pck_extract + $config_getvar ))" in
|
||||
0) [ "$print_help" = "1" ] && autospec.usage 0
|
||||
|
@ -17,7 +17,7 @@ fi
|
||||
TEXTDOMAIN="libcfg"; export TEXTDOMAIN
|
||||
|
||||
# list of the configuration file(s)
|
||||
default_cfg=(\
|
||||
default_cfg_list=(\
|
||||
`ls /etc/@package@.conf /etc/@package@.d/*.conf \
|
||||
~/.@package@ ~/.@package@.d/*.conf 2>/dev/null`)
|
||||
|
||||
@ -100,16 +100,32 @@ missing variable in the configuration file"" -- \`$cfg_var'"
|
||||
done
|
||||
}
|
||||
|
||||
cfg_files_num=0
|
||||
for cfg_file in ${default_cfg[*]}; do
|
||||
if [ -e "$cfg_file" ]; then
|
||||
cfg_files_num=$(($cfg_files_num + 1))
|
||||
notify.debug $"loading"": \`$cfg_file'..."
|
||||
[ -r "$cfg_file" ] || notify.error $"cannot read"" \`$cfg_file'"
|
||||
. "$cfg_file"
|
||||
# load configuration files
|
||||
function cfg_load_files() {
|
||||
notify.debug "$FUNCNAME: loading configuration files..."
|
||||
if [ "$1" ]; then
|
||||
# select a different list of user configuration files
|
||||
cfgfile_list=(\
|
||||
`ls /etc/@package@.conf /etc/@package@.d/*.conf` $1)
|
||||
else
|
||||
# default configuration files
|
||||
cfgfile_list=(${default_cfg_list[@]})
|
||||
fi
|
||||
done
|
||||
|
||||
[ "$cfg_files_num" = 0 ] && notify.error $"configuration file not found"
|
||||
notify.debug "$FUNCNAME: cfgfile_list = (${cfgfile_list[*]})"
|
||||
|
||||
unset cfg_file
|
||||
local cfg_file
|
||||
local cfg_files_num=0
|
||||
for cfg_file in ${cfgfile_list[*]}; do
|
||||
if [ -e "$cfg_file" ]; then
|
||||
cfg_files_num=$(($cfg_files_num + 1))
|
||||
notify.debug $"loading"": \`$cfg_file'..."
|
||||
[ -r "$cfg_file" ] || notify.error $"cannot read"" \`$cfg_file'"
|
||||
. "$cfg_file"
|
||||
else
|
||||
notify.error $"configuration file not found"": $cfg_file"
|
||||
fi
|
||||
done
|
||||
|
||||
[ "$cfg_files_num" = 0 ] && notify.error $"configuration file not found"
|
||||
}
|
||||
|
@ -52,20 +52,20 @@ function usage() {
|
||||
@frontend@ [-C <conf_file>] --eval=<var>
|
||||
|
||||
"$"where the above options mean"":
|
||||
--eval "$"Print the value of the configuration variable <var>""
|
||||
-C, --config "$"Use an alternate configuration file"" <conf_file>""
|
||||
"$"Default files:"" $default_cfg_strlist""
|
||||
"$"Default user files:"" $default_cfg_user_strlist""
|
||||
--eval "$"Print the value of the configuration variable <var>""
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-C, --config "$"Use an alternate user configuration file"" <conf_file>""
|
||||
"$"Default files:"" $default_cfg_strlist""
|
||||
"$"Default user files:"" $default_cfg_user_strlist""
|
||||
|
||||
"$"Operation modes"":
|
||||
-h, --help "$"Print this help, then exit""
|
||||
-V, --version "$"Print version number, then exit""
|
||||
-q, --quiet "$"Run in quiet mode""
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-D, --debug "$"Run in debugging mode (very verbose output)""
|
||||
-h, --help "$"Print this help, then exit""
|
||||
-V, --version "$"Print version number, then exit""
|
||||
-q, --quiet "$"Run in quiet mode""
|
||||
-D, --debug "$"Run in debugging mode (very verbose output)""
|
||||
|
||||
"$"Samples"":
|
||||
@frontend@ -q -C ${default_cfg[0]} --eval=\"logging_dir\"
|
||||
@frontend@ -q -C ${default_cfg_list[0]} --eval=\"logging_dir\"
|
||||
|
||||
"$"Report bugs to <davide.madrisan@gmail.com>."
|
||||
|
||||
@ -104,16 +104,16 @@ eval set -- "$exec_options"
|
||||
|
||||
while :; do
|
||||
case $1 in
|
||||
-C|--config)
|
||||
cfg_file=$2; shift ;;
|
||||
--eval)
|
||||
autospecvar="$2"; shift ;;
|
||||
--colors)
|
||||
color_scheme="$2"; shift ;;
|
||||
-C|--config)
|
||||
cfg_file=$2; shift ;;
|
||||
-D|--debug)
|
||||
let "verbose = 2" ;;
|
||||
-q|--quiet)
|
||||
let "verbose = 0" ;;
|
||||
--colors)
|
||||
color_scheme="$2"; shift ;;
|
||||
-h|--help)
|
||||
usage 0 ;;
|
||||
-V|--version)
|
||||
@ -149,7 +149,7 @@ function config.getvar() {
|
||||
notify.error $"configuration file not found"" -- \`$cfg_file'"
|
||||
cfg_file_lst="$cfg_file"
|
||||
else
|
||||
cfg_file_lst="${default_cfg[*]}"
|
||||
cfg_file_lst="${default_cfg_list[*]}"
|
||||
fi
|
||||
notify.debug "cfg_file_lst = \"$cfg_file_lst\""
|
||||
|
||||
|
@ -54,19 +54,22 @@ function usage() {
|
||||
"$"Extract a given file or list of files from a srpm archive"".
|
||||
|
||||
"$"Usage"":
|
||||
@frontend@ -x -F <file(s)> [--destdir=<dir>] <srpm_pck>
|
||||
@frontend@ -x -F <file(s)> [-C <conf_file>] [--destdir=<dir>] <srpm_pck>
|
||||
|
||||
"$"where the above options mean"":
|
||||
-x, --extract "$"Extract from the srpm package <srpm_pck>...""
|
||||
-F, --files "$"...the specified file or list of files <file(s)>""
|
||||
--destdir "$"Save extracted files in the directory <dir>""
|
||||
-x, --extract "$"Extract from the srpm package <srpm_pck>...""
|
||||
-F, --files "$"...the specified file or list of files <file(s)>""
|
||||
--destdir "$"Save extracted files in the directory <dir>""
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-C, --config "$"Use an alternate user configuration file"" <conf_file>""
|
||||
"$"Default files:"" $default_cfg_strlist""
|
||||
"$"Default user files:"" $default_cfg_user_strlist""
|
||||
|
||||
"$"Operation modes"":
|
||||
-h, --help "$"Print this help, then exit""
|
||||
-V, --version "$"Print version number, then exit""
|
||||
-q, --quiet "$"Run in quiet mode""
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-D, --debug "$"Run in debugging mode (very verbose output)""
|
||||
-h, --help "$"Print this help, then exit""
|
||||
-V, --version "$"Print version number, then exit""
|
||||
-q, --quiet "$"Run in quiet mode""
|
||||
-D, --debug "$"Run in debugging mode (very verbose output)""
|
||||
|
||||
"$"Samples"":
|
||||
@frontend@ -x @package@-@version@-1mamba.src.rpm -F \\*.spec --destdir=/tmp/specs
|
||||
@ -96,10 +99,10 @@ for arg in $@; do
|
||||
done
|
||||
|
||||
exec_options=`LC_ALL=C getopt \
|
||||
-o xF:DqrhV \
|
||||
-o xF:C:DqrhV \
|
||||
--long \
|
||||
extract,files:,destdir:,\
|
||||
debug,quiet,colors:,help,version,\
|
||||
debug,quiet,colors:,config:,help,version,\
|
||||
frontend_opts: \
|
||||
-n "$me" -- "$@"`
|
||||
[ $? = 0 ] || exit 1
|
||||
@ -114,12 +117,14 @@ while :; do
|
||||
filelst="$2"; shift ;;
|
||||
--destdir)
|
||||
destdir="$2"; shift ;;
|
||||
--colors)
|
||||
color_scheme="$2"; shift ;;
|
||||
-C|--config)
|
||||
custom_cfgfile_list="$2"; shift ;;
|
||||
-D|--debug)
|
||||
let "verbose = 2" ;;
|
||||
-q|--quiet)
|
||||
let "verbose = 0" ;;
|
||||
--colors)
|
||||
color_scheme="$2"; shift ;;
|
||||
-h|--help)
|
||||
usage 0 ;;
|
||||
-V|--version)
|
||||
@ -137,6 +142,9 @@ done
|
||||
|
||||
notify.enable_colors "$color_scheme"
|
||||
|
||||
notify.debug "custom_cfgfile_list = \"$custom_cfgfile_list\""
|
||||
cfg_load_files "$custom_cfgfile_list"
|
||||
|
||||
# s_rpm_pck : the name of the srpm package (local or remote)
|
||||
# (i.e. /usr/src/RPM/SRPMS/automake-1.9-1qilnx.src.rpm)
|
||||
# filelst : list of file to extract (default is '*.spec', that is the specfile)
|
||||
|
@ -97,7 +97,7 @@ function usage() {
|
||||
[--changelog \"msg\" ] [--nosrpm|--norpm] \\
|
||||
[--force-update] [--force-build] [--force-install] \\
|
||||
[--force-download] [--ignore-test t1[,t2,...]] \\
|
||||
[-c] [-f] [-L] [-R]
|
||||
[-c] [-f] [-L] [-R] [-C <conf_file>]
|
||||
|
||||
"$"where the above options mean"":
|
||||
-u, --update "$"Update the package <pck> to version <ver> and release <rel>""
|
||||
@ -146,22 +146,25 @@ function usage() {
|
||||
-L, --log "$"Unable logging to file (logging dir: \`\$logging_dir')""
|
||||
-R, --rebuild "$"Enable rebuilding mode and settings (action 4 only)""
|
||||
--root "$"Specify an alternative root directory to rpm""
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-C, --config "$"Use an alternate user configuration file"" <conf_file>""
|
||||
"$"Default files:"" $default_cfg_strlist""
|
||||
"$"Default user files:"" $default_cfg_user_strlist""
|
||||
|
||||
"$"Operation modes"":
|
||||
-h, --help "$"Print this help, then exit""
|
||||
-V, --version "$"Print version number, then exit""
|
||||
-q, --quiet "$"Run in quiet mode""
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-D, --debug "$"Run in debugging mode (very verbose output)""
|
||||
|
||||
"$"Samples"":
|
||||
@frontend@ -u aPackage 0.1.2 -a4 -f --changelog \""$"changelog entry""\"
|
||||
@frontend@ --log -u aPackage -a5,7:9 --force-build --define addons_ver=0.9
|
||||
@frontend@ -c -u -l usr:pswd aPackage 0.1.2 -a10 --server-upload=1
|
||||
@frontend@ -u aPackage -a1,4,5 --arch=noarch --rebuild --ignore-test=6,7
|
||||
@frontend@ -u aPackage -a10 --norpm -S /var/tmp/specs/aPackage.spec
|
||||
@frontend@ -u aPackage -a11 --force-install
|
||||
|
||||
@frontend@ -u apck 0.1.2 -a4 -f --changelog \""$"changelog entry""\"
|
||||
@frontend@ --log -u apck -a5,7:9 --force-build --define addons_ver=0.9
|
||||
@frontend@ -c -u -l usr:pswd apck 0.1.2 -a10 --server-upload=1
|
||||
@frontend@ -u apck -a1,4-8 -A noarch --rebuild --ignore-test=6,7 --colors=web
|
||||
@frontend@ -u apck -a10 --norpm -S /var/tmp/specs/aPackage.spec
|
||||
@frontend@ -u apck -a11 --force-install -C ~/.autospec-alt.conf
|
||||
|
||||
"$"Report bugs to <davide.madrisan@gmail.com>."
|
||||
|
||||
exit ${1:-1}
|
||||
@ -187,15 +190,15 @@ for arg in $@; do
|
||||
done
|
||||
|
||||
exec_options=`LC_ALL=C getopt \
|
||||
-o ua:d:l:S:A:bcfLRDqrhV \
|
||||
-o ua:d:l:S:A:bcfLRC:DqhV \
|
||||
--long \
|
||||
update,action:,define:,login:,specfile:,arch:,\
|
||||
server-download:,server-upload:,server:,\
|
||||
changelog:,nosrpm,norpm,list-check,update-autobuildreq,\
|
||||
force-update,force-build,force-install,force-download,force,\
|
||||
ignore-test:,clear,format,log,rebuild,root:,\
|
||||
debug,quiet,colors:,help,version,\
|
||||
frontend_opts: \
|
||||
frontend_opts:,colors:,config:,\
|
||||
debug,quiet,help,version \
|
||||
-n "$me" -- "$@"`
|
||||
[ $? = 0 ] || exit 1
|
||||
|
||||
@ -276,6 +279,8 @@ while :; do
|
||||
let "verbose = 0" ;;
|
||||
--colors)
|
||||
color_scheme="$2"; shift ;;
|
||||
-C|--config)
|
||||
custom_cfgfile_list="$2"; shift ;;
|
||||
-h|--help)
|
||||
usage 0 ;;
|
||||
-V|--version)
|
||||
@ -309,6 +314,9 @@ fi
|
||||
[ "$logging" = "1" ] && color_scheme="none"
|
||||
notify.enable_colors "$color_scheme"
|
||||
|
||||
notify.debug "custom_cfgfile_list = \"$custom_cfgfile_list\""
|
||||
cfg_load_files "$custom_cfgfile_list"
|
||||
|
||||
# default values for non mandatory configuration variables
|
||||
[ "$logging_dir" ] || logging_dir="${tmppath_dir:-/var/tmp}/@package@"
|
||||
|
||||
|
@ -94,7 +94,8 @@ function usage() {
|
||||
|
||||
"$"Usage"":
|
||||
@frontend@ -s <source-archive> [-n <name>] [-v <ver>] [-t <type>] \\
|
||||
[-o <outfile>] [--changelog \""$"message""\"] [<"$"git-opts"">]
|
||||
[-o <outfile>] [--changelog \""$"message""\"] [<"$"git-opts"">] \\
|
||||
[-C <conf_file>]
|
||||
|
||||
"$"where the above options mean"":
|
||||
-s, --source "$"Try to create a specfile for the specified source archive""
|
||||
@ -110,15 +111,18 @@ function usage() {
|
||||
python : "$"specfile for python modules""
|
||||
standard-daemon : "$"standard specfile for system/network services""
|
||||
-o, --output "$"Redirect the output to the file <outfile>""
|
||||
--changelog "$"Set change information for the package""
|
||||
--git-branch "$"Specify a git branch""
|
||||
--changelog "$"Set change information for the package""
|
||||
--git-branch "$"Specify a git branch""
|
||||
--preserve-dot-git "$"Do not remove git files""
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-C, --config "$"Use an alternate user configuration file"" <conf_file>""
|
||||
"$"Default files:"" $default_cfg_strlist""
|
||||
"$"Default user files:"" $default_cfg_user_strlist""
|
||||
|
||||
"$"Operation modes"":
|
||||
-h, --help "$"Print this help, then exit""
|
||||
-V, --version "$"Print version number, then exit""
|
||||
-q, --quiet "$"Run in quiet mode""
|
||||
--colors "$"Select the theme to be used for the colorized output""
|
||||
-D, --debug "$"Run in debugging mode (very verbose output)""
|
||||
|
||||
"$"Samples"":
|
||||
@ -156,11 +160,11 @@ done
|
||||
config.check4user
|
||||
|
||||
exec_options=`LC_ALL=C getopt \
|
||||
-o s:n:v:t:o:DqrhV \
|
||||
-o s:n:v:t:o:C:DqrhV \
|
||||
--long \
|
||||
source:,pck-name:,pck-version:,type:,output:,changelog:,\
|
||||
git-branch:,preserve-dot-git,\
|
||||
debug,quiet,colors:,help,version,\
|
||||
colors:,config:,debug,quiet,help,version,\
|
||||
frontend_opts: \
|
||||
-n "$me" -- "$@"`
|
||||
[ $? = 0 ] || exit 1
|
||||
@ -195,6 +199,8 @@ while :; do
|
||||
let "verbose = 0" ;;
|
||||
--colors)
|
||||
color_scheme="$2"; shift ;;
|
||||
-C|--config)
|
||||
custom_cfgfile_list="$2"; shift ;;
|
||||
-h|--help)
|
||||
usage 0 ;;
|
||||
-V|--version)
|
||||
@ -211,6 +217,9 @@ for arg in $@; do
|
||||
notify.error $"unrecognized option"" -- \`$arg'"
|
||||
done
|
||||
|
||||
notify.debug "custom_cfgfile_list = \"$custom_cfgfile_list\""
|
||||
cfg_load_files "$custom_cfgfile_list"
|
||||
|
||||
function specfile.ckeck_defvalues() {
|
||||
# $1: name of the specfile
|
||||
local specfile="$1" currvalue
|
||||
|
@ -58,9 +58,15 @@ msgstr "Non stampa alcun dettaglio delle operazioni in esecuzione"
|
||||
msgid "Select the theme to be used for the colorized output"
|
||||
msgstr "Seleziona il tema da usare per generare l'output colorato"
|
||||
|
||||
msgid "Use an alternate user configuration file"
|
||||
msgstr "Definisce uno o più file di configurazione utente alternativi"
|
||||
|
||||
msgid "Run in debugging mode (very verbose output)"
|
||||
msgstr "Attiva la modalità di debugging (output prolisso)"
|
||||
|
||||
msgid "Common options"
|
||||
msgstr "Opzioni comuni"
|
||||
|
||||
msgid "Usage"
|
||||
msgstr "Utilizzo"
|
||||
|
||||
|
@ -45,8 +45,8 @@ msgstr "dove le precedenti opzioni significano"
|
||||
msgid "Print the value of the configuration variable <var>"
|
||||
msgstr "Stampa il valore che <var> assume nei file di configurazione"
|
||||
|
||||
msgid "Use an alternate configuration file"
|
||||
msgstr "Utilizza un file di configurazione alternativo"
|
||||
msgid "Use an alternate user configuration file"
|
||||
msgstr "Definisce uno o più file di configurazione utente alternativi"
|
||||
|
||||
msgid "Default files:"
|
||||
msgstr "File di default:"
|
||||
|
@ -66,6 +66,15 @@ msgstr "Non stampa alcun dettaglio delle operazioni in esecuzione"
|
||||
msgid "Select the theme to be used for the colorized output"
|
||||
msgstr "Seleziona il tema da usare per generare l'output colorato"
|
||||
|
||||
msgid "Use an alternate user configuration file"
|
||||
msgstr "Definisce uno o più file di configurazione utente alternativi"
|
||||
|
||||
msgid "Default files:"
|
||||
msgstr "File di default:"
|
||||
|
||||
msgid "Default user files:"
|
||||
msgstr "File di default utente:"
|
||||
|
||||
msgid "Run in debugging mode (very verbose output)"
|
||||
msgstr "Attiva la modalità di debugging (output prolisso)"
|
||||
|
||||
|
@ -168,6 +168,15 @@ msgstr "Attiva modalità ed impostazioni di rebuild (azione 4)"
|
||||
msgid "Specify an alternative root directory to rpm"
|
||||
msgstr "Definisce una root directory alternativa per rpm"
|
||||
|
||||
msgid "Use an alternate user configuration file"
|
||||
msgstr "Definisce uno o più file di configurazione utente alternativi"
|
||||
|
||||
msgid "Default files:"
|
||||
msgstr "File di default:"
|
||||
|
||||
msgid "Default user files:"
|
||||
msgstr "File di default utente:"
|
||||
|
||||
msgid "Operation modes"
|
||||
msgstr "Modalità operative"
|
||||
|
||||
|
@ -88,6 +88,15 @@ msgstr "Specifica un branch git"
|
||||
msgid "Do not remove git files"
|
||||
msgstr "Non rimuove i file git"
|
||||
|
||||
msgid "Use an alternate user configuration file"
|
||||
msgstr "Definisce uno o più file di configurazione utente alternativi"
|
||||
|
||||
msgid "Default files:"
|
||||
msgstr "File di default:"
|
||||
|
||||
msgid "Default user files:"
|
||||
msgstr "File di default utente:"
|
||||
|
||||
msgid "Operation modes"
|
||||
msgstr "Modalità operative"
|
||||
|
||||
@ -100,9 +109,6 @@ msgstr "Stampa il numero di versione e termina il programma"
|
||||
msgid "Run in quiet mode"
|
||||
msgstr "Non stampa alcun dettaglio delle operazioni in esecuzione"
|
||||
|
||||
msgid "Select the theme to be used for the colorized output"
|
||||
msgstr "Seleziona il tema da usare per generare l'output colorato"
|
||||
|
||||
msgid "Run in debugging mode (very verbose output)"
|
||||
msgstr "Attiva la modalità di debugging (output prolisso)"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user