Skip to content

Commit

Permalink
make: whitespace sweep target and execution
Browse files Browse the repository at this point in the history
  • Loading branch information
fichtner committed Sep 27, 2016
1 parent e79baf0 commit c730b32
Show file tree
Hide file tree
Showing 14 changed files with 263 additions and 28 deletions.
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
10 changes: 10 additions & 0 deletions Mk/plugins.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 185 additions & 0 deletions Scripts/cleanfile
Original file line number Diff line number Diff line change
@@ -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 changes: 38 additions & 0 deletions Scripts/version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/bin/sh

# Copyright (c) 2015 Franco Fichtner <[email protected]>
#
# 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}
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,3 @@ FromEmail={{ OPNsense.helloworld.general.FromEmail|default("") }}
ToEmail={{ OPNsense.helloworld.general.ToEmail|default("") }}
Subject={{ OPNsense.helloworld.general.Description|default("") }}
{% endif %}


Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public function setProxyAction($uuid)
$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) {
Expand All @@ -94,11 +94,11 @@ public function setProxyAction($uuid)
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."
Expand All @@ -111,7 +111,7 @@ public function setProxyAction($uuid)
// 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
Expand Down Expand Up @@ -148,25 +148,25 @@ public function addProxyAction()
$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",
"validations" => array(
"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
Expand Down Expand Up @@ -247,7 +247,7 @@ public function toggleProxyAction($uuid)
$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();
Expand Down Expand Up @@ -281,14 +281,14 @@ public function searchProxyAction()
"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']);
Expand All @@ -299,7 +299,7 @@ public function searchProxyAction()
}
$row['status'] = 2;
}

return $response;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@
*/
class ItemController extends \OPNsense\Base\IndexController
{

}
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,4 @@
<type>text</type>
<help><![CDATA[Briefly description of this ftp proxy]]></help>
</field>
</form>
</form>
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
<pattern>api/ftpproxy/*</pattern>
</patterns>
</page-services-ftpproxy>
</acl>
</acl>
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,4 @@
</ftpproxy>
</ftpproxies>
</items>
</model>
</model>
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
<Services>
<FtpProxy VisibleName="Ftp Proxy Server" cssClass="fa fa-bolt fa-fw" order="11" url="/ui/ftpproxy/"/>
</Services>
</menu>
</menu>
Loading

0 comments on commit c730b32

Please sign in to comment.