[4/5] config: add new functions
Message ID | 1500305066-12510-4-git-send-email-jonatan.schlag@ipfire.org |
---|---|
State | Accepted |
Commit | 2b474c46d4784047487e730050e831c56530ee40 |
Headers |
Return-Path: <network-bounces@lists.ipfire.org> Received: from mail01.ipfire.org (unknown [172.28.1.200]) by web02.ipfire.org (Postfix) with ESMTP id AB09361C5D for <patchwork@ipfire.org>; Mon, 17 Jul 2017 17:24:42 +0200 (CEST) Received: from mail01.ipfire.org (localhost [IPv6:::1]) by mail01.ipfire.org (Postfix) with ESMTP id 70ED52596; Mon, 17 Jul 2017 17:24:42 +0200 (CEST) Received: from ipfire.localdomain (dslb-088-073-208-102.088.073.pools.vodafone-ip.de [88.73.208.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 0A42727D3; Mon, 17 Jul 2017 17:24:39 +0200 (CEST) From: Jonatan Schlag <jonatan.schlag@ipfire.org> To: network@lists.ipfire.org Subject: [PATCH 4/5] config: add new functions Date: Mon, 17 Jul 2017 17:24:25 +0200 Message-Id: <1500305066-12510-4-git-send-email-jonatan.schlag@ipfire.org> X-Mailer: git-send-email 2.6.3 In-Reply-To: <1500305066-12510-1-git-send-email-jonatan.schlag@ipfire.org> References: <1500305066-12510-1-git-send-email-jonatan.schlag@ipfire.org> X-BeenThere: network@lists.ipfire.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List for the network package <network.lists.ipfire.org> List-Unsubscribe: <http://lists.ipfire.org/mailman/options/network>, <mailto:network-request@lists.ipfire.org?subject=unsubscribe> List-Archive: <http://lists.ipfire.org/pipermail/network/> List-Post: <mailto:network@lists.ipfire.org> List-Help: <mailto:network-request@lists.ipfire.org?subject=help> List-Subscribe: <http://lists.ipfire.org/mailman/listinfo/network>, <mailto:network-request@lists.ipfire.org?subject=subscribe> Errors-To: network-bounces@lists.ipfire.org Sender: "network" <network-bounces@lists.ipfire.org> |
Message
Jonatan Schlag
July 18, 2017, 1:24 a.m. UTC
This patch add two new functions:
config_get_id_from_config()
config_get_hook_from_config
Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
---
src/functions/functions.config | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
Comments
Hi, On Mon, 2017-07-17 at 17:24 +0200, Jonatan Schlag wrote: > This patch add two new functions: > config_get_id_from_config() > config_get_hook_from_config > > Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org> > --- > src/functions/functions.config | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/src/functions/functions.config > b/src/functions/functions.config > index 854f490..e11a1c2 100644 > --- a/src/functions/functions.config > +++ b/src/functions/functions.config > @@ -51,3 +51,23 @@ config_domainname() { > # the domain part. > print "${hostname#*.}" > } > + > +config_get_id_from_config() { > + # This function returns the id for a given config name > + # Example 'dhcp.0' => 0 > + assert [ $# -eq 1 ] > + local config=${1} > + > + local hook=$(config_get_hook_from_config ${config}) > + echo "${config//"${hook}."/}" > + > +} There is an extra empty line. And calling config_get_hook_from_config() is an expensive call. It forks a subshell and loads the hook and so on. I am sure that you can find the ID without knowing what is coming before. That would increase performance of this function tremendously. > + > +config_get_hook_from_config() { > + # This function returns the hook for a given config name > + # Example 'dhcp.0' => dhcp > + assert [ $# -eq 1 ] > + local config=${1} > + > + echo "${config//.*[[:digit:]]/}" > +}
On Mon, 2017-07-17 at 16:22 -0400, Michael Tremer wrote: > Hi, > > On Mon, 2017-07-17 at 17:24 +0200, Jonatan Schlag wrote: > > This patch add two new functions: > > config_get_id_from_config() > > config_get_hook_from_config > > > > Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org> > > --- > > src/functions/functions.config | 20 ++++++++++++++++++++ > > 1 file changed, 20 insertions(+) > > > > diff --git a/src/functions/functions.config > > b/src/functions/functions.config > > index 854f490..e11a1c2 100644 > > --- a/src/functions/functions.config > > +++ b/src/functions/functions.config > > @@ -51,3 +51,23 @@ config_domainname() { > > # the domain part. > > print "${hostname#*.}" > > } > > + > > +config_get_id_from_config() { > > + # This function returns the id for a given config name > > + # Example 'dhcp.0' => 0 > > + assert [ $# -eq 1 ] > > + local config=${1} > > + > > + local hook=$(config_get_hook_from_config ${config}) > > + echo "${config//"${hook}."/}" > > + > > +} > > There is an extra empty line. > > And calling config_get_hook_from_config() is an expensive call. It > forks a subshell and loads the hook and so on. > > I am sure that you can find the ID without knowing what is coming > before. That would increase performance of this function > tremendously. Actually I am wrong here. This is the function below :) Still you can avoid calling it... > > > + > > +config_get_hook_from_config() { > > + # This function returns the hook for a given config name > > + # Example 'dhcp.0' => dhcp > > + assert [ $# -eq 1 ] > > + local config=${1} > > + > > + echo "${config//.*[[:digit:]]/}" > > +}