Some new releases and fixes

This commit is contained in:
Yorhel 2019-03-21 08:39:38 +01:00
parent 2192e68775
commit 5c85a7d32f
15 changed files with 132 additions and 85 deletions

View file

@ -237,7 +237,7 @@ Haskell itself already has a few advantages when compared to OCaml: For one, it
has a larger ecosystem, so for any task you can think of there is probably
already at least one existing library. As an example, I was unable to find an
actively maintained SQL DSL for OCaml, while there are several available for
Haskell. Another advantage that I found where the much more friendly and
Haskell. Another advantage that I found were the much more friendly and
detailed error messages generated by the Haskell compiler, GHC. In terms of
build systems, Haskell has standardized on
L<Cabal|https://www.haskell.org/cabal/>, which works alright most of the time.

View file

@ -14,9 +14,9 @@ ncurses interface.
- L<changes|https://dev.yorhel.nl/ncdc/changes>)
Convenient static binaries for Linux:
L<64-bit|https://dev.yorhel.nl/download/ncdc-linux-x86_64-1.20.tar.gz> -
L<32-bit|https://dev.yorhel.nl/download/ncdc-linux-i486-1.20.tar.gz> -
L<ARM|https://dev.yorhel.nl/download/ncdc-linux-arm-1.20.tar.gz>. Check the
L<64-bit|https://dev.yorhel.nl/download/ncdc-linux-x86_64-1.20-6-g5111a.tar.gz> -
L<32-bit|https://dev.yorhel.nl/download/ncdc-linux-i486-1.20-6-g5111a.tar.gz> -
L<ARM|https://dev.yorhel.nl/download/ncdc-linux-arm-1.20-6-g5111a.tar.gz>. Check the
L<installation instructions|https://dev.yorhel.nl/ncdc/install> for more info.
=item Development version

View file

@ -38,11 +38,11 @@ compiling and/or installing it, I also offer statically linked binaries:
=over
=item * L<Linux, 64-bit|https://dev.yorhel.nl/download/ncdc-linux-x86_64-1.20.tar.gz>
=item * L<Linux, 64-bit|https://dev.yorhel.nl/download/ncdc-linux-x86_64-1.20-6-g5111a.tar.gz>
=item * L<Linux, 32-bit|https://dev.yorhel.nl/download/ncdc-linux-i486-1.20.tar.gz>
=item * L<Linux, 32-bit|https://dev.yorhel.nl/download/ncdc-linux-i486-1.20-6-g5111a.tar.gz>
=item * L<Linux, ARM|https://dev.yorhel.nl/download/ncdc-linux-arm-1.20.tar.gz>
=item * L<Linux, ARM|https://dev.yorhel.nl/download/ncdc-linux-arm-1.20-6-g5111a.tar.gz>
=back

View file

@ -13,12 +13,12 @@ POSIX-like environment with ncurses installed.
=item Latest version
1.13 ([dllink ncdu-1.13.tar.gz download]
1.14 ([dllink ncdu-1.14.tar.gz download]
- L<changes|https://dev.yorhel.nl/ncdu/changes>)
I also have convenient static binaries for Linux
L<i486|https://dev.yorhel.nl/download/ncdu-linux-i486-1.13.tar.gz> and
L<ARM|https://dev.yorhel.nl/download/ncdu-linux-arm-1.13.tar.gz>. Download,
L<i486|https://dev.yorhel.nl/download/ncdu-linux-i486-1.14.tar.gz> and
L<ARM|https://dev.yorhel.nl/download/ncdu-linux-arm-1.14.tar.gz>. Download,
extract and run; no compilation or installation necessary (uses
L<musl|http://www.musl-libc.org/>).
@ -45,20 +45,19 @@ L<Arch Linux|https://www.archlinux.org/packages/?q=ncdu> -
L<CRUX|https://crux.nu/portdb/?q=ncdu&a=search> -
L<Cygwin|https://cygwin.com/cgi-bin2/package-grep.cgi?grep=ncdu> -
L<Debian|http://packages.debian.org/ncdu> -
L<Fedora|https://admin.fedoraproject.org/pkgdb/package/ncdu/> -
L<Fedora|https://apps.fedoraproject.org/packages/ncdu> -
L<FreeBSD|https://www.freebsd.org/cgi/ports.cgi?query=ncdu&stype=all> -
L<Frugalware|http://frugalware.org/packages/?op=pkg&srch=ncdu&arch=all&ver=all> -
L<Gentoo|https://packages.gentoo.org/packages/sys-fs/ncdu> -
L<GNU Guix|https://www.gnu.org/software/guix/package-list.html> -
L<IPCop|http://www.ipadd.de/binary-v2.html> -
L<OpenBSD|http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/sysutils/ncdu/> -
Mac OS X (L<Fink|http://pdb.finkproject.org/pdb/package.php/ncdu> - L<Homebrew|http://braumeister.org/formula/ncdu> - L<MacPorts|http://www.macports.org/ports.php?by=name&substr=ncdu>) -
Mac OS X (L<Fink|http://pdb.finkproject.org/pdb/package.php/ncdu> - L<Homebrew|https://formulae.brew.sh/formula/ncdu> - L<MacPorts|http://www.macports.org/ports.php?by=name&substr=ncdu>) -
L<Puppy Linux|http://www.murga-linux.com/puppy/viewtopic.php?t=35024> -
L<Solaris|http://www.opencsw.org/packages/ncdu> -
L<Slackware|http://slackbuilds.org/repository/14.2/system/ncdu/> -
L<Slax Linux|http://www.slax.org/modules.php?detail=ncdu> -
L<Ubuntu|http://packages.ubuntu.com/search?searchon=sourcenames&keywords=ncdu> -
L<Void Linux|https://www.voidlinux.eu/packages/>
L<Void Linux|https://voidlinux.org/packages/>
Packages for RHEL and (open)SUSE can be found on the
L<Open Build Service|https://software.opensuse.org//download.html?project=utilities&package=ncdu>.

View file

@ -1,3 +1,13 @@
1.14 - 2019-02-04
- Add mtime display and sorting (Alex Wilson)
- Add (limited) --follow-symlinks option (Simon Doppler)
- Display larger file counts in browser UI
- Add -V, --version, and --help alias flags
- Fix crash when attempting to sort an empty directory
- Fix 100% CPU bug when ncdu loses the terminal
- Fix '--color=off' flag
- Fix some typos
1.13 - 2018-01-29
- Add "extended information" mode and -e flag
- Add file mode, modification time and uid/gid to info window with -e

View file

@ -20,11 +20,11 @@ provides a fast way to see what directories are using your disk space.
=over
=item -h
=item -h, --help
Print a short help message and quit.
=item -v
=item -v, -V, --version
Print ncdu version and quit.
@ -67,6 +67,9 @@ when importing (to read this extra information in memory). This flag has no
effect when importing a file that has been exported without the extended
information.
This enables viewing and sorting by the latest child mtime, or modified time,
using 'm' and 'M', respectively.
=back
=head2 Interface options
@ -169,6 +172,13 @@ displayed, but not their content, and they are not counted towards the disk
usage statistics.
See http://www.brynosaurus.com/cachedir/
=item -L, --follow-symlinks
Follow symlinks and count the size of the file they point to. As of ncdu 1.14,
this option will not follow symlinks to directories and will count each
symlinked file as a unique file (i.e. unlike how hard links are handled). This
is subject to change in later versions.
=back
@ -208,6 +218,11 @@ Order by number of items (press again for descending order)
Toggle between showing disk usage and showing apparent size.
=item M
Order by latest child mtime, or modified time. (press again for descending order)
Requires the -e flag.
=item d
Delete the selected file or directory. An error message will be shown when the
@ -228,6 +243,10 @@ the current directory.
Toggle display of child item counts.
=item m
Toggle display of latest child mtime, or modified time. Requires the -e flag.
=item e
Show/hide 'hidden' or 'excluded' files and directories. Please note that even
@ -264,6 +283,45 @@ Quit
=back
=head1 FILE FLAGS
Entries in the browser interface may be prefixed by a one-character flag. These
flags have the following meaning:
=over
=item !
An error occurred while reading this directory.
=item .
An error occurred while reading a subdirectory, so the indicated size may not be
correct.
=item <
File or directory is excluded from the statistics by using exlude patterns.
=item >
Directory is on another filesystem.
=item @
This is neither a file nor a folder (symlink, socket, ...).
=item H
Same file was already counted (hard link).
=item e
Empty directory.
=back
=head1 EXAMPLES
To scan and browse the directory you're currently in, all you need is a simple:

View file

@ -41,14 +41,14 @@ See the L<manual|https://dev.yorhel.nl/nginx-confgen/man> for more features.
If you're on a x86_64 Linux system, you can simply use the binary:
curl -s https://dev.yorhel.nl/download/nginx-confgen-linux-amd64-1.1.tar.gz | tar -xzf-
curl -s https://dev.yorhel.nl/download/nginx-confgen-linux-amd64-1.2.tar.gz | tar -xzf-
./nginx-confgen <input.conf >output.conf
To compile from source, install L<Haskell Stack|https://haskellstack.org/> and run:
git clone git://g.blicky.net/nginx-confgen.git
git clone https://code.blicky.net/yorhel/nginx-confgen.git
cd nginx-confgen
stack install
The git repository is also available for L<online
browsing|https://g.blicky.net/nginx-confgen.git/>.
browsing|https://code.blicky.net/yorhel/nginx-confgen>.

View file

@ -1,3 +1,11 @@
1.2 - 2018-02-23
- Preserve original string quoting and variable formatting
- Fix parser to be more lenient with argument formats
- Fix handling of the \\-escape sequence
- Fix handling of quoting & parenthesis in 'if' directive
- Fix handling of empty string in pre_if
- Remove support for parenthesis around pre_if arguments
1.1 - 2018-01-24
- Add pre_warn directive
- Add -i/-o/-v/-h command line arguments

View file

@ -16,10 +16,6 @@ nginx-confgen can be used to do pre-processing for nginx configuration files
"compile-time" macro expansion and variable interpolation, which should make it
less tedious to maintain large and complex configurations.
nginx-confgen does not currently support any command-line arguments. It simply
reads the configuration from standard input, and writes the processed
configuration to standard output.
nginx-confgen works by parsing the input into a syntax tree, modifying this
tree, and then formatting the tree to generate the output. It is completely
oblivious to nginx contexts and directives, so it is possible to do nonsensical
@ -111,8 +107,8 @@ new command).
=head2 pre_if
Similar to the C<if> directive in nginx, except that this is evaluated during
preprocessing. nginx-confgen has a few warts with regards to parenthesis,
things usually work better without:
preprocessing. Also unlike C<if>, parenthesis around the arguments are not
supported. Some examples:
pre_if -f $certdir/ocsp.der {
ssl_stapling on;
@ -214,68 +210,20 @@ nested macro expansion.
=head1 BUGS & WARTS
nginx-confgen is a quickly written hack to solve a particular use case, it is
quite likely to have some weird behavior and bugs. Here's a few I am aware of:
quite likely to have some weird behavior and bugs.
=over
=item *
Comments and whitespace in the input files are thrown away and ignored. The
generated output is completely reformatted.
The nginx configuration syntax is not as regular as I had hoped. It's possible
for nginx modules to extend the syntax somewhat. A good example is the I<types>
directive in I<ngx_http_core_module>. While nginx-confgen should be able to
handle the I<types> directive just fine, other extensions may cause syntax
errors or will not survive a round-trip through nginx-confgen.
This applies to all I<*_by_lua_block> directives in the I<ngx_http_lua_module>.
The I<_by_lua> directives that accept a string should work just fine.
=item *
Be careful with parenthesis around if statements, e.g.:
if ($a == $b) { }
Will get converted into:
if "(${a}" == "${b})" { }
Which is unlikely what you want. As a workaround, add some spaces:
if ( $a == $b ) { }
=item *
Arguments to directives may get reformatted, especially if they contain a
variable. This I<should> not matter in most cases, but in some particular
scenarios it does. Here's a few examples of reformatting:
return 301 http://blicky.net$request_uri;
# becomes:
return 301 "http://blicky.net${request_uri}";
add_header Something "${header}";
# becomes:
add_header Something $header;
This reformatting may cause different behavior for nginx directives that do not
support variable interpolation, such as C<error_log>.
=item *
C<pre_if> does not like empty strings, e.g.
pre_if $x == "" { }
Will throw an error, use the following instead:
pre_if $x { }
=item *
The error messages aren't always helpful.
=back
The error messages given by C<nginx-confgen> aren't always helpful.
=head1 AUTHOR

View file

@ -38,9 +38,9 @@ information and details.
=head2 Download
B<Latest packaged version:> 1.2 ([dllink TUWF-1.2.tar.gz download]
- L<CPAN mirror|http://search.cpan.org/dist/TUWF/>)
- L<CPAN mirror|https://metacpan.org/release/TUWF>)
TUWF is also available on a git repository at L<https://g.blicky.net/tuwf.git/>.
TUWF is also available on a git repository at L<https://code.blicky.net/yorhel/tuwf>.
=head2 Websites using TUWF

View file

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEdEYNMrgIEOupr6LpYjlMaYwnOfoFAlxYaSIACgkQYjlMaYwn
OfqkmBAAq6TDPMcDMiXgcKkte2phU8ks8BizAdiydkjoQbFSBIpdeNrxTQMGvb6o
19MZEr29QfSBGB1UnaK1GWvYWxjRTDXMbKRYy5SFdcCi2vgsTJVkB1ydPfQ64t4Z
u3+h9zJzrlDDpFjGaGvidSLjE7/QCtPNO7nmxh8N2koX6i0q6xRYki+KBKaFr0/4
HeKR8jHDam+1zHRD06BzelyqNcROolt/BUxhgRudrFIQFshsNK99MNjYaQOo6TJV
frMaGaYZJXhSMENQEvmTXEgj4pzoKn2MxKhywIAlRV85MPwDd+HxeaBsx4/k3JeS
gbNu4k2iJnG6rcNjTzHWyrqD0OGmwephp2AxyrdGS31L3Wl64oT0C2/zAcMnjbM4
tnOO6FLrsu4vGalxGwvYYXj98aVfhYYac9P1v0ANcYWSqW8pL3XKJK/2Kx11v2Ko
p47q0FXr2NsQgBl54UMQLU3npVPrn9uI5RL9H5nxOIB3scCmiBuLXFrMAK+hslW0
A79Yf/qgGyDBchDdajX3SZeGFEgc0F8JVuI7yQDg2oTIg8WwZBBgO3INmY/nu2zc
xDWRsGsyxsEQFw/6HvL2pcXx6Kz5XBy15TI7sZqnfT832tLmDHcyB61foyKKHFi/
D21WsSsIHsoY+F4swnUl8hGhKyiD1V9AV1VXlBuUL+9wcJjRxDs=
=RqQk
-----END PGP SIGNATURE-----

View file

@ -0,0 +1 @@
d26c0aa57728c19969c3c5036fa272a0 ncdu-1.14.tar.gz

View file

@ -0,0 +1 @@
28c7003ad23d2e3a2d22d2c349bb0c7170752396 ncdu-1.14.tar.gz

View file

@ -12,6 +12,8 @@ BEGIN { ($ROOT = abs_path $0) =~ s{index\.cgi$}{}; }
my @changes = (
[ '2019-02-04', '/ncdu', 'ncdu 1.14 released' ],
[ '2018-02-23', '/nginx-confgen', 'nginx-confgen 1.2 released' ],
[ '2018-02-18', '/tuwf', 'TUWF 1.2 released' ],
[ '2018-01-29', '/ncdu', 'ncdu 1.13 released' ],
[ '2018-01-24', '/nginx-confgen', 'nginx-confgen 1.1 released' ],
@ -118,7 +120,7 @@ TUWF::register(
qr{nginx-confgen/man} => sub { podpage(shift, 'nginx-confgen-man', 'nginx-confgen', 'man', 'The nginx-confgen(1) Man Page', 1) },
qr{nginx-confgen/changes} => sub { changelog(shift, 'nginx-confgen-changelog', undef, 'nginx-confgen', 'changes', 'nginx-confgen Changelog', 1) },
qr{tuwf} => sub { podpage(shift, 'tuwf', 'tuwf', '', 'The Ultimate Website Framework') },
qr{tuwf/man(?:/(db|intro|misc|request|response|xml))?} => \&tuwfmanual,
qr{tuwf/man(?:/(db|intro|misc|request|response|validate|xml))?} => \&tuwfmanual,
qr{tuwf/changes} => sub { changelog(shift, 'tuwf-changelog', 'TUWF', 'tuwf', 'changes', 'TUWF Changelog') },
qr{ylib} => sub { podpage(shift, 'ylib/README.pod', 'ylib', '', 'Ylib') },
qr{yxml} => sub { podpage(shift, 'yxml', 'yxml', '', 'Yxml - A small, fast and correct* XML parser') },
@ -478,8 +480,9 @@ sub htmlHeader {
div class => 'notes';
txt 'Yoran Heling'; br;
a href => 'mailto:projects@yorhel.nl', 'projects@yorhel.nl';
br; a href => 'https://yorhel.nl', 'home';
txt ' - '; a href => 'http://g.blicky.net', 'git repos';
br; a href => 'https://yorhel.nl/', 'home';
txt ' - '; a href => 'https://g.blicky.net/', 'git';
txt ' - '; a href => 'https://niu.moe/@ayo', '@ayo';
br; b '= donate =';
a href => 'https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=BBF8LGT2LLNFN&lc=US&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted', 'paypal';
br; b '= pgp =';
@ -511,7 +514,7 @@ sub htmlMenu {
h1 class => 'title', "~ \u$o{page} ~" if $o{spec}{$o{page}};
my $m = sub {
li;
my $s = ($_[0] =~ m{^/([^/]+)} && $o{spec}{$1} && $o{page} ne $1) || $_[0] =~ m{^http://};
my $s = ($_[0] =~ m{^/([^/]+)} && $o{spec}{$1} && $o{page} ne $1) || $_[0] =~ m{^https?://};
my @c = ($s?'special':(), $_[2]?'menusel':(), $_[4]?'tiny':());
a href => $_[0], @c?(class => join ' ',@c):(), $_[1];
if($_[3]) {
@ -556,9 +559,11 @@ sub htmlMenu {
$m->('/tuwf/man/misc', '::Misc', $o{sec} eq 'man' && $o{sec2} eq 'misc');
$m->('/tuwf/man/request', '::Request', $o{sec} eq 'man' && $o{sec2} eq 'request');
$m->('/tuwf/man/response', '::Response', $o{sec} eq 'man' && $o{sec2} eq 'response');
$m->('/tuwf/man/validate', '::Validate', $o{sec} eq 'man' && $o{sec2} eq 'validate');
$m->('/tuwf/man/xml', '::XML', $o{sec} eq 'man' && $o{sec2} eq 'xml');
});
$m->('/tuwf/changes', 'Changelog', $o{sec} eq 'changes');
$m->('https://code.blicky.net/yorhel/tuwf/issues', 'Issues');
} elsif($o{page} eq 'yxml') {
$m->('/yxml', 'Info', !$o{sec});
$m->('/yxml/man', 'Manual', $o{sec} eq 'man');
@ -567,6 +572,7 @@ sub htmlMenu {
$m->('/nginx-confgen', 'Info', !$o{sec});
$m->('/nginx-confgen/man', 'Manual', $o{sec} eq 'man');
$m->('/nginx-confgen/changes', 'Changelog', $o{sec} eq 'changes');
$m->('https://code.blicky.net/yorhel/nginx-confgen/issues', 'Issues');
} else {
$m->('/', 'Home', !$o{page});
$m->('/ncdu', 'Ncdu ');

View file

@ -38,8 +38,8 @@ h3 { margin-top: 0; margin-left: 10px }
h1, h1 a { font-size: 19px; color: #000; margin-bottom: 5px; text-decoration: none }
h2, h2 a { font-size: 16px; color: #000; margin-bottom: 1px; text-decoration: none }
h3, h3 a { font-size: 15px; color: #000; margin-bottom: 1px; text-decoration: none }
li { margin-left: 35px; margin-right: 15px; text-align: justify }
p { margin: 3px 15px 13px 15px; text-align: justify }
li { margin-left: 35px; margin-right: 15px; /*text-align: justify*/ }
p { margin: 3px 15px 13px 15px; /*text-align: justify*/ }
p + ul, p + ol { margin-top: -10px }
pre { padding-left: 0 }
pre, code, pre b { font: 11px monospace; }