dbusev.c + ncdu 1.9 release

This commit is contained in:
Yorhel 2012-09-27 22:17:15 +02:00
parent fa28f26d69
commit 8341fb9341
9 changed files with 265 additions and 98 deletions

View file

@ -1,8 +1,8 @@
=pod =pod
Most of the things I write are simple perl/shell scripts or programs that only I write a lot of miscellaneous little perl/shell scripts and micro-libraries
serve the purpose of learning something new. This page is a listing of those I for the purpose of getting something done. This page is a listing of those I
thought might be of interest to others as well. thought might be of useful to others as well.
=head2 bbcode.c =head2 bbcode.c
@ -64,3 +64,15 @@ L<Example output|http://s.blicky.net/2012/ncdc-share-report.html>.
Download: L<0.3|http://p.blicky.net/h25z8> Download: L<0.3|http://p.blicky.net/h25z8>
(L<0.2|http://p.blicky.net/6yx2d>, L<0.1|http://p.blicky.net/ab4lm>). (L<0.2|http://p.blicky.net/6yx2d>, L<0.1|http://p.blicky.net/ab4lm>).
=head2 dbusev.c
September 2012. This is a small C library to use
L<libdbus|http://www.freedesktop.org/wiki/Software/dbus> with
L<libev|http://software.schmorp.de/pkg/libev.html>. It will register IO
watchers, timeout handlers, a dispatch function and a wakeup function on behalf
of libdbus. You may have to ensure that the right headers are being included in
dbusev.c, in my case the "global.h" does that.
Download: L<dbusev.c|http://g.blicky.net/neoglobster.git/tree/src/dbusev.c> and
L<dbusev.h|http://g.blicky.net/neoglobster.git/tree/src/dbusev.h>.

View file

@ -7,7 +7,7 @@ In theory, the following instructions should work everywhere:
=over =over
=item * Install the required dependencies: ncurses, bzip2, sqlite3, glib2 and gnutls, =item * Install the required dependencies: ncurses, bzip2, zlib, sqlite3, glib2 and gnutls,
=item * Download and extract the source tarball from the L<homepage|http://dev.yorhel.nl/ncdc>, =item * Download and extract the source tarball from the L<homepage|http://dev.yorhel.nl/ncdc>,

View file

@ -14,7 +14,7 @@ to run in any minimal POSIX-like environment with ncurses installed.
=item Latest version =item Latest version
1.8 ([dllink ncdu-1.8.tar.gz download] 1.9 ([dllink ncdu-1.9.tar.gz download]
- L<changes|http://dev.yorhel.nl/ncdu/changes> - L<changes|http://dev.yorhel.nl/ncdu/changes>
- L<mirror|https://sourceforge.net/projects/ncdu/files/ncdu/>) - L<mirror|https://sourceforge.net/projects/ncdu/files/ncdu/>)

View file

@ -1,3 +1,15 @@
1.9 - 2012-09-27
- Added option to dump scanned directory information to a file (-o)
- Added option to load scanned directory information from a file (-f)
- Added multiple scan and load interfaces (-0,-1,-2)
- Fit loading and error windows to the terminal width (#13)
- Fix symlink resolving bug (#18)
- Fix path display when scanning an empty directory (#15)
- Fix hang when terminal is resized to a too small size while loading
- Use top-level automake build
- Remove useless AUTHORS, INSTALL and NEWS files
- ncdu.1 now uses POD as source format
1.8 - 2011-11-03 1.8 - 2011-11-03
- Use hash table to speed up hard link detection - Use hash table to speed up hard link detection
- Added read-only option (-r) - Added read-only option (-r)
@ -42,8 +54,10 @@
1.4 - 2008-09-10 1.4 - 2008-09-10
- Removed the startup window - Removed the startup window
- Filenames ending with a tidle (~) will now also be hidden with the 'h'-key - Filenames ending with a tidle (~) will now also
- Fixed buffer overflow when supplying a path longer than PATH_MAX (patch by Tobias Stoeckmann) be hidden with the 'h'-key
- Fixed buffer overflow when supplying a path longer
than PATH_MAX (patch by Tobias Stoeckmann)
- Used S_BLKSIZE instead of a hardcoded block size of 512 - Used S_BLKSIZE instead of a hardcoded block size of 512
- Fixed display of disk usage and apparent sizes - Fixed display of disk usage and apparent sizes
- Updated ncdu -h - Updated ncdu -h
@ -55,9 +69,12 @@
1.3 - 2007-08-05 1.3 - 2007-08-05
- Added 'r'-key to refresh the current directory - Added 'r'-key to refresh the current directory
- Removed option to calculate apparent size: both the disk usage and the apparent size are calculated. - Removed option to calculate apparent size: both
- Added 'a'-key to switch between showing apparent size and disk usage. the disk usage and the apparent size are calculated.
- Added 'i'-key to display information about the selected item. - Added 'a'-key to switch between showing apparent
size and disk usage.
- Added 'i'-key to display information about the
selected item.
- Small performance improvements - Small performance improvements
- configure checks for ncurses.h (bug #1764304) - configure checks for ncurses.h (bug #1764304)
@ -67,29 +84,36 @@
- Fixed bug #1758403: large directories work fine now - Fixed bug #1758403: large directories work fine now
- Rewrote a large part of the code - Rewrote a large part of the code
- Fixed a bug with wide characters - Fixed a bug with wide characters
- Performance improvements when browsing large dir - Performance improvements when browsing large dirs
1.1 - 2007-04-30 1.1 - 2007-04-30
- Deleting files and directories is now possible from within ncdu. - Deleting files and directories is now possible from
- The key for sorting directories between files has changed to 't' instead of 'd'. within ncdu.
The 'd'-key is now used for deleting files. - The key for sorting directories between files has
changed to 't' instead of 'd'. The 'd'-key is now
used for deleting files.
1.0 - 2007-04-06 1.0 - 2007-04-06
- First stable release - First stable release
- Small code cleanup - Small code cleanup
- Added a key to toggle between sorting dirs before files and dirs between files - Added a key to toggle between sorting dirs before
- Added graphs and percentages to the directory browser (can be enabled or disabled with the 'g'-key) files and dirs between files
- Added graphs and percentages to the directory
browser (can be enabled or disabled with the 'g'-key)
0.3 - 2007-03-04 0.3 - 2007-03-04
- When browsing back to the previous directory, the directory you're getting - When browsing back to the previous directory, the
back from will be selected. directory you're getting back from will be selected.
- Added directory scanning in quiet mode to save bandwidth on remote connections. - Added directory scanning in quiet mode to save
bandwidth on remote connections.
0.2 - 2007-02-26 0.2 - 2007-02-26
- Fixed compliance with some operating systems: replaced realpath() with with my own - Fixed POSIX compliance: replaced realpath() with my
implementation, and gettimeofday() is not required anymore (but still highly recommended) own implementation, and gettimeofday() is not
required anymore (but highly recommended)
- Added a warning for terminals smaller than 60x16 - Added a warning for terminals smaller than 60x16
- Mountpoints (or any other directory pointing to another filesystem) are now considered to be - Mountpoints (or any other directory pointing to
another filesystem) are now considered to be
directories rather than files. directories rather than files.
0.1 - 2007-02-21 0.1 - 2007-02-21

View file

@ -1,5 +1,3 @@
.TH ncdu 1 "Nov 3, 2011" "ncdu-1.8" "ncdu manual"
=head1 NAME =head1 NAME
B<ncdu> - NCurses Disk Usage B<ncdu> - NCurses Disk Usage
@ -18,35 +16,106 @@ provides a fast way to see what directories are using your disk space.
=head1 OPTIONS =head1 OPTIONS
=head2 Mode Selection
=over =over
=item -h =item -h
Print a short help message. Print a short help message and quit.
=item -q
Quiet mode. While calculating disk space, ncdu will update the screen 10 times
a second by default, this will be decreased to once every 2 seconds in quiet
mode. Use this feature to save bandwidth over remote connections.
=item -r
Read-only mode. This will disable the built-in file deletion feature.
=item -v =item -v
Print version. Print ncdu version and quit.
=item -f I<FILE>
Load the given file, which has earlier been created with the C<-o> option. If
I<FILE> is equivalent to C<->, the file is read from standard input.
For the sake of preventing a screw-up, the current version of ncdu will assume
that the directory information in the imported file does not represent the
filesystem on which the file is being imported. That is, the refresh and file
deletion options in the browser will be disabled.
=item I<dir>
Scan the given directory.
=item -o I<FILE>
Export all necessary information to I<FILE> instead of opening the browser
interface. If I<FILE> is C<->, the data is written to standard output. See the
examples section below for some handy use cases.
Be warned that the exported data may grow quite large when exporting a
directory with many files. 10.000 files will get you an export in the order of
600 to 700 KiB uncompressed, or a little over 100 KiB when compressed with
gzip. This scales linearly, so be prepared to handle a few tens of megabytes
when dealing with millions of files.
=back
=head2 Interface options
=over
=item -0
Don't give any feedback while scanning a directory or importing a file, other
than when a fatal error occurs. Ncurses will not be initialized until the scan
is complete. When exporting the data with C<-o>, ncurses will not be
initialized at all. This option is the default when exporting to standard
output.
=item -1
Similar to C<-0>, but does give feedback on the scanning progress with a single
line of output. This option is the default when exporting to a file.
In some cases, the ncurses browser interface which you'll see after the
scan/import is complete may look garbled when using this option. If you're not
exporting to a file, C<-2> is probably a better choice.
=item -2
Provide a full-screen ncurses interface while scanning a directory or importing
a file. This is the only interface that provides feedback on any non-fatal
errors while scanning.
=item -q
Quiet mode. While scanning or importing the directory, ncdu will update the
screen 10 times a second by default, this will be decreased to once every 2
seconds in quiet mode. Use this feature to save bandwidth over remote
connections. This option has no effect when C<-0> is used.
=item -r
Read-only mode. This will disable the built-in file deletion feature. This
option has no effect when C<-o> is used, because there will not be a browser
interface in that case. It has no effect when C<-f> is used, either, because
the deletion feature is disabled in that case anyway.
=back
=head2 Scan Options
These options affect the scanning progress, and have no effect when importing
directory information from a file.
=over
=item -x =item -x
Only count files and directories on the same filesystem as the specified Do not cross filesystem boundaries, i.e. only count files and directories on
I<dir>. the same filesystem as the directory being scanned.
=item --exclude I<PATTERN> =item --exclude I<PATTERN>
Exclude files that match I<PATTERN>. This argument can be added multiple times Exclude files that match I<PATTERN>. The files will still be displayed by
to add more patterns. default, but are not counted towards the disk usage statistics. This argument
can be added multiple times to add more patterns.
=item -X I<FILE>, --exclude-from I<FILE> =item -X I<FILE>, --exclude-from I<FILE>
@ -127,6 +196,47 @@ Quit
=back =back
=head1 EXAMPLES
To scan and browse the directory you're currently in, all you need is a simple:
ncdu
If you want to scan a full filesystem, your root filesystem, for example, then
you'll want to use C<-x>:
ncdu -x /
Since scanning a large directory may take a while, you can scan a directory and
export the results for later viewing:
ncdu -1xo- / | gzip >export.gz
# ...some time later:
zcat export.gz | ncdu -f-
To export from a cron job, make sure to replace C<-1> with C<-0> to suppress
any unnecessary output.
You can also export a directory and browse it once scanning is done:
ncdu -o- | tee export.file | ./ncdu -f-
The same is possible with gzip compression, but is a bit kludgey:
ncdu -o- | gzip | tee export.gz | gunzip | ./ncdu -f-
To scan a system remotely, but browse through the files locally:
ssh -C user@system ncdu -o- / | ./ncdu -f-
The C<-C> option to ssh enables compression, which will be very useful over
slow links. Remote scanning and local viewing has two major advantages when
compared to running ncdu directly on the remote system: You can browse through
the scanned directory on the local system without any network latency, and ncdu
does not keep the entire directory structure in memory when exporting, so you
won't consume much memory on the remote system.
=head1 HARD LINKS =head1 HARD LINKS
Every disk usage analysis utility has its own way of (not) counting hard links. Every disk usage analysis utility has its own way of (not) counting hard links.

View file

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iQIcBAABCgAGBQJQZB/TAAoJEGI5TGmMJzn687UQANUoVctvByVGbIhisil+yX3j
NWvZyKPDomNxxFzcqjZnxx1RKQvdTowFQ9UTn6fy6bGV5UUWUSwPs4uriou3u4W5
tfV32HRhec5FuiqZmeeApDFhjyliRB+9X6Y+2FIf36GQxnPI9Z585Vrfirn4Zhho
YYYqKIYY/FbObPFo0/vFoCg4a22ih6kc53/yTf4KPxF6R18ayR5MkGOhMsSU0E6L
EWR4xNykW6OyCrLVWC9N07fv9r+4ipFT/ynhRAzl4tXInz3pqfoHay8JbmhYLnKi
0RHzEAG2SrtTqjT4CDnKfcfOTr8xGGoVoeOi0CVZRP+/zDbCzZDNvfdUa7yrKAGg
eATF3J7RQhPy46kv2kilyVuXUe5Vo6T5WW9uFr7Q9uF6yb5adAOInt+94AsQdhhr
f3I+VkoQVqUKBq5LlpEi8cj3dzvEo7lkxvlsRDckQ0cvygN1Z0qnKuXlA4j8wRqJ
waPF34iHrlXgtmZPHWX1OHBDlWw1q0S2WGu28vdZC+qW5/RQvgHqAD8oD9Qiv459
CeeZ6JvOKxe6ovDnSIvTBdnEvVFkab6whsmYbiJLXUMGKNngcWitBV3QZUJB2Dyu
DzdG/So2n0V4AzvRP8GYJvlA0jXDQ+PNR88jVe17C+3cq2clUflaLurdTnlNpR7q
O65IKxnAAmrugMsjpB5w
=ZEhk
-----END PGP SIGNATURE-----

View file

@ -0,0 +1 @@
93258079db897d28bb8890e2db89b1fb ncdu-1.9.tar.gz

View file

@ -0,0 +1 @@
27cb5464b192db8ffdf0a894fe51d29985348eb0 ncdu-1.9.tar.gz

View file

@ -12,6 +12,8 @@ BEGIN { ($ROOT = abs_path $0) =~ s{index\.cgi$}{}; }
my @changes = ( my @changes = (
[ '2012-09-27', '/ncdu', 'ncdu 1.9 released.' ],
[ '2012-09-25', '/dump#dbusev.c', 'Added dbusev.c to the code dump' ],
[ '2012-08-16', '/ncdc', 'ncdc 1.13 released.' ], [ '2012-08-16', '/ncdc', 'ncdc 1.13 released.' ],
[ '2012-07-10', '/ncdc', 'ncdc 1.12 released.' ], [ '2012-07-10', '/ncdc', 'ncdc 1.12 released.' ],
[ '2012-05-15', '/ncdc', 'ncdc 1.11 released.' ], [ '2012-05-15', '/ncdc', 'ncdc 1.11 released.' ],
@ -26,8 +28,8 @@ my @changes = (
[ '2012-02-13', '/ncdc', 'ncdc 1.8 released.' ], [ '2012-02-13', '/ncdc', 'ncdc 1.8 released.' ],
[ '2012-01-19', '/tuwf', 'TUWF 0.2 released.' ], [ '2012-01-19', '/tuwf', 'TUWF 0.2 released.' ],
[ '2012-01-17', undef, 'Complete site redesign.' ], [ '2012-01-17', undef, 'Complete site redesign.' ],
[ '2011-12-30', '/ncdc/', 'ncdc 1.7 released!' ], [ '2011-12-30', '/ncdc', 'ncdc 1.7 released!' ],
[ '2011-12-07', '/ncdc/', 'ncdc 1.6 released!' ], [ '2011-12-07', '/ncdc', 'ncdc 1.6 released!' ],
[ '2011-11-26', '/doc', 'Added article section and the article on SQLite.' ], [ '2011-11-26', '/doc', 'Added article section and the article on SQLite.' ],
[ '2011-11-03', '/ncdu', 'ncdu 1.8 released!' ], [ '2011-11-03', '/ncdu', 'ncdu 1.8 released!' ],
[ '2011-11-03', '/ncdc', 'ncdc 1.5 released!' ], [ '2011-11-03', '/ncdc', 'ncdc 1.5 released!' ],