On 09/04/2012 03:48 PM, Jakub Filak wrote:
> Signed-off-by: Jakub Filak <[email protected]>
> ---
>  abrt.spec.in                          |  1 +
>  src/plugins/Makefile.am               |  6 ++++--
>  src/plugins/abrt-action-analyze-crash | 15 +++++++++++++++
>  src/plugins/ccpp_retrace_event.conf   |  2 +-
>  4 files changed, 21 insertions(+), 3 deletions(-)
>  create mode 100755 src/plugins/abrt-action-analyze-crash
> 
> diff --git a/abrt.spec.in b/abrt.spec.in
> index a1c00ba..93689f3 100644
> --- a/abrt.spec.in
> +++ b/abrt.spec.in
> @@ -535,6 +535,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor 
> &>/dev/null || :
>  %{_bindir}/abrt-action-generate-core-backtrace
>  %{_bindir}/abrt-action-analyze-backtrace
>  %{_bindir}/abrt-action-list-dsos
> +%{_bindir}/abrt-action-analyze-crash
>  %{_bindir}/abrt-dedup-client
>  %{_sbindir}/abrt-install-ccpp-hook
>  %{_sysconfdir}/libreport/events.d/ccpp_event.conf
> diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
> index 675b1a7..15223ef 100644
> --- a/src/plugins/Makefile.am
> +++ b/src/plugins/Makefile.am
> @@ -4,7 +4,8 @@ bin_SCRIPTS = \
>      abrt-action-install-debuginfo \
>      abrt-action-analyze-core \
>      abrt-action-analyze-vmcore \
> -    abrt-action-list-dsos
> +    abrt-action-list-dsos \
> +    abrt-action-analyze-crash
>  
>  bin_PROGRAMS = \
>      abrt-watch-log \
> @@ -73,7 +74,8 @@ EXTRA_DIST = \
>      analyze_VMcore.xml.in \
>      abrt-action-analyze-vmcore \
>      https-utils.h \
> -    post_report.xml.in
> +    post_report.xml.in \
> +    abrt-action-analyze-crash
>  
>  abrt_watch_log_SOURCES = \
>      abrt-watch-log.c
> diff --git a/src/plugins/abrt-action-analyze-crash 
> b/src/plugins/abrt-action-analyze-crash
> new file mode 100755
> index 0000000..1acca6b
> --- /dev/null
> +++ b/src/plugins/abrt-action-analyze-crash
> @@ -0,0 +1,15 @@
> +#!/bin/sh
> +# For event handlers
> +# Tries to retrace over retrace server
> +# If retrace server fails asks user for an approval to run retracing locally
> +
> +abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10 || (
> +    echo `gettext "ASK_YES_NO Do you want to perform local analysis?"` && 
> read answ
> +    if test x"$answ" == x"yes"; then

'==' is a bashism. Better to use '='.

> +        abrt-action-analyze-core --core=coredump -o build_ids &&
> +        /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache 
> --size_mb=4096 &&
> +        abrt-action-generate-backtrace
> +    else
> +        exit 1
> +    fi
> +)
> diff --git a/src/plugins/ccpp_retrace_event.conf 
> b/src/plugins/ccpp_retrace_event.conf
> index 60e53d7..3cd5450 100644
> --- a/src/plugins/ccpp_retrace_event.conf
> +++ b/src/plugins/ccpp_retrace_event.conf
> @@ -1,5 +1,5 @@
>  EVENT=analyze_RetraceServer analyzer=CCpp
> -        abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10 &&
> +        abrt-action-analyze-crash &&
>          abrt-action-analyze-backtrace &&
>          (
>              bug_id=$(reporter-bugzilla -h `cat duphash`) &&


Adding yet another script feels... not very pleasant to me.
I think just putting the script into the ccpp_retrace_event.conf
is slightly better:


EVENT=analyze_RetraceServer analyzer=CCpp
        abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10
        if test $? != 0; then
(*)         echo "ASK_YES_NO" "`gettext "Do you want to perform analysis 
locally?"`"
            read answ
            test x"$answ" = x"yes" || exit 1
            #
            # Similar/same as analyze_LocalGDB:
            #
            abrt-action-analyze-core --core=coredump -o build_ids &&
            /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache 
--size_mb=4096 &&
            abrt-action-generate-backtrace
        fi &&
        abrt-action-analyze-backtrace &&
...



(*)
1. ASK_YES_NO should not be localized.
2. `cmd` needs to be quoted: "`cmd`", to prevent multi-word expansion.
   (In this case it is not strictly necessary, but a good practice.)

Reply via email to