make: whitespace sweep target and execution

This commit is contained in:
Franco Fichtner 2016-09-27 09:25:24 +02:00
parent e79baf0c30
commit c730b321eb
14 changed files with 263 additions and 28 deletions

View File

@ -25,3 +25,8 @@ lint:
.for PLUGIN_DIR in ${PLUGIN_DIRS}
${MAKE} -C ${PLUGIN_DIR} lint
.endfor
sweep:
.for PLUGIN_DIR in ${PLUGIN_DIRS}
${MAKE} -C ${PLUGIN_DIR} sweep
.endfor

View File

@ -193,5 +193,15 @@ lint: check
! -name "*.tgz" ! -name "*.xml.dist" \
-type f -print0 | xargs -0 -n1 php -l
sweep: check
find ${.CURDIR}/src -type f -name "*.map" -print0 | \
xargs -0 -n1 rm
if grep -nr sourceMappingURL= ${.CURDIR}/src; then \
echo "Mentions of sourceMappingURL must be removed"; \
exit 1; \
fi
find ${.CURDIR}/src ! -name "*.min.*" ! -name "*.svg" \
! -name "*.ser" -type f -print0 | \
xargs -0 -n1 ${.CURDIR}/../../Scripts/cleanfile
.PHONY: check

185
Scripts/cleanfile Executable file
View File

@ -0,0 +1,185 @@
#!/usr/bin/env perl
#
# Clean a text file -- or directory of text files -- of stealth whitespace.
# WARNING: this can be a highly destructive operation. Use with caution.
#
use bytes;
use File::Basename;
# Default options
$max_width = 119;
# Clean up space-tab sequences, either by removing spaces or
# replacing them with tabs.
sub clean_space_tabs($)
{
no bytes; # Tab alignment depends on characters
my($li) = @_;
my($lo) = '';
my $pos = 0;
my $nsp = 0;
my($i, $c);
for ($i = 0; $i < length($li); $i++) {
$c = substr($li, $i, 1);
if ($c eq "\t") {
my $npos = ($pos+$nsp+8) & ~7;
my $ntab = ($npos >> 3) - ($pos >> 3);
$lo .= "\t" x $ntab;
$pos = $npos;
$nsp = 0;
} elsif ($c eq "\n" || $c eq "\r") {
$lo .= " " x $nsp;
$pos += $nsp;
$nsp = 0;
$lo .= $c;
$pos = 0;
} elsif ($c eq " ") {
$nsp++;
} else {
$lo .= " " x $nsp;
$pos += $nsp;
$nsp = 0;
$lo .= $c;
$pos++;
}
}
$lo .= " " x $nsp;
return $lo;
}
# Compute the visual width of a string
sub strwidth($) {
no bytes; # Tab alignment depends on characters
my($li) = @_;
my($c, $i);
my $pos = 0;
my $mlen = 0;
for ($i = 0; $i < length($li); $i++) {
$c = substr($li,$i,1);
if ($c eq "\t") {
$pos = ($pos+8) & ~7;
} elsif ($c eq "\n") {
$mlen = $pos if ($pos > $mlen);
$pos = 0;
} else {
$pos++;
}
}
$mlen = $pos if ($pos > $mlen);
return $mlen;
}
$name = basename($0);
@files = ();
while (defined($a = shift(@ARGV))) {
if ($a =~ /^-/) {
if ($a eq '-width' || $a eq '-w') {
$max_width = shift(@ARGV)+0;
} else {
print STDERR "Usage: $name [-width #] files...\n";
exit 1;
}
} else {
push(@files, $a);
}
}
foreach $f ( @files ) {
print STDERR "$name: $f\n";
if (! -f $f) {
print STDERR "$f: not a file\n";
next;
}
if (!open(FILE, '+<', $f)) {
print STDERR "$name: Cannot open file: $f: $!\n";
next;
}
binmode FILE;
# First, verify that it is not a binary file; consider any file
# with a zero byte to be a binary file. Is there any better, or
# additional, heuristic that should be applied?
$is_binary = 0;
while (read(FILE, $data, 65536) > 0) {
if ($data =~ /\0/) {
$is_binary = 1;
last;
}
}
if ($is_binary) {
print STDERR "$name: $f: binary file\n";
next;
}
seek(FILE, 0, 0);
$in_bytes = 0;
$out_bytes = 0;
$blank_bytes = 0;
@blanks = ();
@lines = ();
$last = "\n";
$lineno = 0;
while ( defined($line = <FILE>) ) {
$lineno++;
$in_bytes += length($line);
$line =~ s/[ \t\r]*$//; # Remove trailing spaces
$line = clean_space_tabs($line);
$last = $line;
if ( $line eq "\n" ) {
push(@blanks, $line);
$blank_bytes += length($line);
} else {
push(@lines, @blanks);
$out_bytes += $blank_bytes;
push(@lines, $line);
$out_bytes += length($line);
@blanks = ();
$blank_bytes = 0;
}
$l_width = strwidth($line);
if ($max_width && $l_width > $max_width) {
print STDERR
"$f:$lineno: line exceeds $max_width characters ($l_width)\n";
}
}
if ( chop($last) ne "\n" ) {
# fix missing newline at EOF
push(@lines, "\n");
# increment input bytes to signal character append
$in_bytes += 1;
}
# Any blanks at the end of the file are discarded
if ($in_bytes != $out_bytes) {
# Only write to the file if changed
seek(FILE, 0, 0);
print FILE @lines;
if ( !defined($where = tell(FILE)) ||
!truncate(FILE, $where) ) {
die "$name: Failed to truncate modified file: $f: $!\n";
}
}
close(FILE);
}

38
Scripts/version.sh Executable file
View File

@ -0,0 +1,38 @@
#!/bin/sh
# Copyright (c) 2015 Franco Fichtner <franco@opnsense.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
set -e
VERSION=$(git describe --abbrev=0 --always)
REVISION=$(git rev-list ${VERSION}.. --count)
COMMENT=$(git rev-list HEAD --max-count=1 | cut -c1-9)
if [ "${REVISION}" != "0" ]; then
# must construct full version string manually
VERSION=${VERSION}_${REVISION}
fi
echo ${VERSION}-${COMMENT}

View File

@ -5,5 +5,3 @@ FromEmail={{ OPNsense.helloworld.general.FromEmail|default("") }}
ToEmail={{ OPNsense.helloworld.general.ToEmail|default("") }}
Subject={{ OPNsense.helloworld.general.Description|default("") }}
{% endif %}

View File

@ -83,7 +83,7 @@ class SettingsController extends ApiControllerBase
$OldFlags = $mdlFtpProxy->configToFlags($node);
$result = array("result" => "failed", "validations" => array());
$proxyInfo = $this->request->getPost("ftpproxy");
$node->setNodes($proxyInfo);
$valMsgs = $mdlFtpProxy->performValidation();
foreach ($valMsgs as $field => $msg) {
@ -94,11 +94,11 @@ class SettingsController extends ApiControllerBase
if (count($result['validations']) == 0) {
// check for duplicates
foreach ($CurrentProxies['ftpproxies']['ftpproxy'] as $CurrentUUID => &$CurrentProxy) {
if ($node->listenaddress->__toString() == $CurrentProxy['listenaddress'] &&
if ($node->listenaddress->__toString() == $CurrentProxy['listenaddress'] &&
$node->listenport->__toString() == $CurrentProxy['listenport'] &&
$uuid != $CurrentUUID) {
return array(
"result" => "failed",
"result" => "failed",
"validations" => array(
"ftpproxy.listenaddress" => "Listen address in combination with Listen port already exists.",
"ftpproxy.listenport" => "Listen port in combination with Listen address already exists."
@ -111,7 +111,7 @@ class SettingsController extends ApiControllerBase
// save config if validated correctly
$mdlFtpProxy->serializeToConfig();
Config::getInstance()->save();
$backend = new Backend();
// apply new settings to the ftp-proxy process
// stop ftp-proxy with old flags
@ -148,17 +148,17 @@ class SettingsController extends ApiControllerBase
$CurrentProxies = $mdlFtpProxy->getNodes();
$node = $mdlFtpProxy->ftpproxies->ftpproxy->Add();
$node->setNodes($this->request->getPost("ftpproxy"));
$valMsgs = $mdlFtpProxy->performValidation();
foreach ($valMsgs as $field => $msg) {
$fieldnm = str_replace($node->__reference, "ftpproxy", $msg->getField());
$result["validations"][$fieldnm] = $msg->getMessage();
}
if (count($result['validations']) == 0) {
foreach ($CurrentProxies['ftpproxies']['ftpproxy'] as &$CurrentProxy) {
if ($node->listenaddress->__toString() == $CurrentProxy['listenaddress']
if ($node->listenaddress->__toString() == $CurrentProxy['listenaddress']
&& $node->listenport->__toString() == $CurrentProxy['listenport']) {
return array(
"result" => "failed",
@ -166,7 +166,7 @@ class SettingsController extends ApiControllerBase
"ftpproxy.listenaddress" => "Listen address in combination with Listen port already exists.",
"ftpproxy.listenport" => "Listen port in combination with Listen address already exists."
)
);
);
}
}
// retrieve ftp-proxy flags and set defaults
@ -247,7 +247,7 @@ class SettingsController extends ApiControllerBase
$node->enabled = "1";
$response = $backend->configdpRun('ftpproxy start ', array($mdlFtpProxy->configToFlags($node)));
}
// if item has toggled, serialize to config and save
$mdlFtpProxy->serializeToConfig();
Config::getInstance()->save();
@ -281,14 +281,14 @@ class SettingsController extends ApiControllerBase
"description"
);
$mdlFtpProxy = new FtpProxy();
$grid = new UIModelGrid($mdlFtpProxy->ftpproxies->ftpproxy);
$response = $grid->fetchBindRequest(
$this->request,
$fields,
"listenport"
);
$backend = new Backend();
foreach($response['rows'] as &$row) {
$node = $mdlFtpProxy->getNodeByReference('ftpproxies.ftpproxy.' . $row['uuid']);
@ -299,7 +299,7 @@ class SettingsController extends ApiControllerBase
}
$row['status'] = 2;
}
return $response;
}
}

View File

@ -36,5 +36,5 @@ namespace OPNsense\FtpProxy;
*/
class ItemController extends \OPNsense\Base\IndexController
{
}

View File

@ -71,4 +71,4 @@
<type>text</type>
<help><![CDATA[Briefly description of this ftp proxy]]></help>
</field>
</form>
</form>

View File

@ -7,4 +7,4 @@
<pattern>api/ftpproxy/*</pattern>
</patterns>
</page-services-ftpproxy>
</acl>
</acl>

View File

@ -75,4 +75,4 @@
</ftpproxy>
</ftpproxies>
</items>
</model>
</model>

View File

@ -2,4 +2,4 @@
<Services>
<FtpProxy VisibleName="Ftp Proxy Server" cssClass="fa fa-bolt fa-fw" order="11" url="/ui/ftpproxy/"/>
</Services>
</menu>
</menu>

View File

@ -1,19 +1,19 @@
#!/bin/sh
#
# Copyright (C) 2016 EURO-LOG AG
#
#
# All rights reserved.
#
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
#
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
@ -58,14 +58,14 @@ done
if [ "X$LISTENADDRESS" == "X" -o "X$LISTENPORT" == "X" ]; then
( >&2 echo "Either listenaddress or listenport not given. Check -b and -p flags." )
exit 999
fi
fi
ftpproxy_start () {
ftpproxy_status
if [ $? -gt 0 ]; then # already running
return 0
fi
/usr/sbin/ftp-proxy $FLAGS
return $?
}

View File

@ -3,4 +3,4 @@ version: 0.1
origin: opnsense/ftpproxy
comment: ftp-proxy configuration
desc: configuration templates for ftp-proxy
prefix: /
prefix: /

View File

@ -890,4 +890,3 @@ listen remote_statistics
{% else %}
# statistics are DISABLED
{% endif %}