From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imath.kiev.ua; s=hydra; t=1537555135; bh=lTA/Lzb+EWJF9kPBR0W9H9Ve+VegeOFJL/6a/qJ1lRo=; h=Date:From:To:Subject:References:In-Reply-To; b=QAzQ6KHmyCzOkxR7VFD4e1vu4IhrIjwpnTB6aKVRXDGLvk/DNp8sybfzQIyx+OzaS IIVk5BIW5/acS6YuuvvF78onHdvjmBDW+d5NisGJ6D2TRoS6QQVAesLJMx/L2TO+Ld fKaACGSsUMiK+piDHDz6/yjKDdLLUJjpV2TN9/NY= Date: Fri, 21 Sep 2018 21:38:54 +0300 From: Igor Vlasenko To: devel@lists.altlinux.org Message-ID: <20180921183854.GA30240@dad.imath.kiev.ua> References: <20180921174924.GA29314@dad.imath.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180921174924.GA29314@dad.imath.kiev.ua> User-Agent: Mutt/1.9.1 (2017-09-22) Subject: Re: [devel] =?utf-8?b?STog0YPRgtC40LvQuNGC0LAgbG9nb3ZlZC1yZXBvcnQg?= =?utf-8?b?0LTQu9GPINC+0LHRgNCw0LHQvtGC0LrQuCDQu9C+0LPQvtCyLiAzLdCf0YA=?= =?utf-8?b?0LDQstC40LvQsCDQm9C+0LPQvtCy0LXQtC4=?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Sep 2018 18:38:59 -0000 Archived-At: List-Archive: List-Post: Вдогонку: 3.2.4 Параметр TYPE. В текущей реализации logoved-report между правилами Логовед возможен конфликт за строку, когда на одной строке срабатывает несколько правил. Надо каким-то образом указать, какое из них самое релевантное. Или же в сообщении об ошибке можно выделить конкретные разновидности и общую часть, и сделать набор правил, который пытается выделить конкретные разновидности, но если конкретной разновидности нет в базе, пусть сработает хотя бы общая часть. Для этого используется параметр TYPE. TYPE=error -- самое релевантное. TYPE=fallback -- менее релевантное. TYPE=fallback2 -- еще менее релевантное. TYPE=fallback3 -- ну, вы поняли логику. Пример, где это используется. db/findreq/shebang.req/emacs-var.logoved PATTERN=Unrecognized switch: -\*- FIX=hook set_kill_shabang-env-perl.pl db/findreq/shebang.req/env.logoved PATTERN=too many arguments:.*/bin/env FIX=hook set_kill_shabang-env-perl.pl db/findreq/shebang.req/trailing-cr.logoved PATTERN=trailing in interpreter FIX=hook set_kill_cr_shabang.pl 3 конкретных случая, для каждого из которых у робота есть лечение. Общий случай, не знаем что делать, ловим для ручной обработки. db/findreq/shebang.req/other.logoved TYPE=fallback PATTERN=shebang.req: ERROR TYPE=fallback означает, что это правило Логовед будет считаться сработавшим только тогда, когда ни одно другое правило с TYPE=error не сработало. И еще более общий случай, db/findreq/other.logoved TYPE=fallback2 PATTERN=^find-requires: ERROR: /usr/lib/rpm/.*\.req failed сработает уже только, если ни TYPE=error, ни TYPE=fallback не сработал и не распознал конкретную причину. -- I V