summaryrefslogtreecommitdiff
path: root/tools/directive
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2020-04-06 10:35:11 +0100
committerSadie Powell <sadie@witchery.services>2020-04-06 10:35:11 +0100
commitc353cb5aeef70ce14c2c168adc683a620583d952 (patch)
tree86fa1fb3530631e8586afed91ceb0ed9c6113f23 /tools/directive
parentf28c467e95f68f7a1767ebb0bc6f6f12ae407f3a (diff)
Add a tool for retrieving directives from source files.
Diffstat (limited to 'tools/directive')
-rwxr-xr-xtools/directive55
1 files changed, 55 insertions, 0 deletions
diff --git a/tools/directive b/tools/directive
new file mode 100755
index 000000000..95fe847ac
--- /dev/null
+++ b/tools/directive
@@ -0,0 +1,55 @@
+#!/usr/bin/env perl
+#
+# InspIRCd -- Internet Relay Chat Daemon
+#
+# Copyright (C) 2020 Sadie Powell <sadie@witchery.services>
+#
+# This file is part of InspIRCd. InspIRCd is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General Public
+# License as published by the Free Software Foundation, version 2.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+
+BEGIN {
+ require 5.10.0;
+ unless (-f 'configure') {
+ print "Error: $0 must be run from the main source directory!\n";
+ exit 1;
+ }
+}
+
+use feature ':5.10';
+use strict;
+use warnings FATAL => qw(all);
+
+use File::Basename qw(dirname);
+use FindBin qw($RealDir);
+
+use lib dirname $RealDir;
+use make::console;
+use make::directive;
+
+if (scalar @ARGV < 2) {
+ print_format "<|GREEN Usage:|> $0 <<|UNDERLINE FILE|>> [<|UNDERLINE DIRECTIVES...|>]\n", *STDERR;
+ exit 1
+}
+
+my $file = shift;
+print_error "<|GREEN $file|> does not exist and/or is not a file!" unless -f $file;
+
+for my $directive (@ARGV) {
+ my $value = get_directive $file, $directive, '';
+ if (-t STDOUT) {
+ print_format "<|GREEN $directive|>: $value\n";
+ } else {
+ say $value;
+ }
+}