From 6e421593ee72435f619d8f58c2e9e83bdc171df5 Mon Sep 17 00:00:00 2001 From: Nigel Kukard <nkukard@lbsd.net> Date: Sun, 7 Jul 2013 16:12:13 +0000 Subject: [PATCH] Added booleanize() function --- opentrafficshaper/utils.pm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/opentrafficshaper/utils.pm b/opentrafficshaper/utils.pm index 47ffc9f..894cda2 100644 --- a/opentrafficshaper/utils.pm +++ b/opentrafficshaper/utils.pm @@ -33,6 +33,8 @@ our (@ISA,@EXPORT,@EXPORT_OK); isUsername isIP isNumber + + booleanize ); @EXPORT_OK = qw( ); @@ -174,5 +176,38 @@ sub isNumber } +# Booleanize the variable depending on its contents +sub booleanize +{ + my $var = shift; + + + # Check if we're defined + if (!isVariable($var)) { + return undef; + } + + # If we're a number + if (my $val = isNumber($var)) { + if ($val == 0) { + return 0; + } else { + return 1; + } + } + + # Nuke whitespaces + $var =~ s/\s//g; + + # Allow true, on, set, enabled, 1 + if ($var =~ /^(?:true|on|set|enabled|1|yes)$/i) { + return 1; + } + + # Invalid or unknown + return 0; +} + + 1; # vim: ts=4 -- GitLab