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