From 8341fb9341f5fd77d2e506b5c8eead4135172704 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 27 Sep 2012 22:17:15 +0200 Subject: [PATCH] dbusev.c + ncdu 1.9 release --- dat/dump | 18 +++- dat/ncdc-install | 2 +- dat/ncdu | 2 +- dat/ncdu-changelog | 170 +++++++++++++++++++--------------- dat/ncdu-man | 146 +++++++++++++++++++++++++---- download/ncdu-1.9.tar.gz.asc | 17 ++++ download/ncdu-1.9.tar.gz.md5 | 1 + download/ncdu-1.9.tar.gz.sha1 | 1 + index.cgi | 6 +- 9 files changed, 265 insertions(+), 98 deletions(-) create mode 100644 download/ncdu-1.9.tar.gz.asc create mode 100644 download/ncdu-1.9.tar.gz.md5 create mode 100644 download/ncdu-1.9.tar.gz.sha1 diff --git a/dat/dump b/dat/dump index 8f01c05..5e0d0b5 100644 --- a/dat/dump +++ b/dat/dump @@ -1,8 +1,8 @@ =pod -Most of the things I write are simple perl/shell scripts or programs that only -serve the purpose of learning something new. This page is a listing of those I -thought might be of interest to others as well. +I write a lot of miscellaneous little perl/shell scripts and micro-libraries +for the purpose of getting something done. This page is a listing of those I +thought might be of useful to others as well. =head2 bbcode.c @@ -64,3 +64,15 @@ L. 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>). +=head2 dbusev.c + +September 2012. This is a small C library to use +L with +L. 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 and +L. + diff --git a/dat/ncdc-install b/dat/ncdc-install index 59a80b9..e2d04c2 100644 --- a/dat/ncdc-install +++ b/dat/ncdc-install @@ -7,7 +7,7 @@ In theory, the following instructions should work everywhere: =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, diff --git a/dat/ncdu b/dat/ncdu index 2154314..f9cc5ab 100644 --- a/dat/ncdu +++ b/dat/ncdu @@ -14,7 +14,7 @@ to run in any minimal POSIX-like environment with ncurses installed. =item Latest version -1.8 ([dllink ncdu-1.8.tar.gz download] +1.9 ([dllink ncdu-1.9.tar.gz download] - L - L) diff --git a/dat/ncdu-changelog b/dat/ncdu-changelog index f5b95c2..402fb9a 100644 --- a/dat/ncdu-changelog +++ b/dat/ncdu-changelog @@ -1,96 +1,120 @@ +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 - - Use hash table to speed up hard link detection - - Added read-only option (-r) - - Use KiB instead of kiB (#3399279) + - Use hash table to speed up hard link detection + - Added read-only option (-r) + - Use KiB instead of kiB (#3399279) 1.7 - 2010-08-13 - - List the detected hard links in file info window - - Count the size of a hard linked file once for each directory it appears in - - Fixed crash on browsing dirs with a small window size (#2991787) - - Fixed buffer overflow when some directories can't be scanned (#2981704) - - Fixed segfault when launched on a nonexistant directory (#3012787) - - Fixed segfault when root dir only contains hidden files - - Improved browsing performance - - More intuitive multi-page browsing - - Display size graph by default - - Various minor fixes + - List the detected hard links in file info window + - Count the size of a hard linked file once for each directory it appears in + - Fixed crash on browsing dirs with a small window size (#2991787) + - Fixed buffer overflow when some directories can't be scanned (#2981704) + - Fixed segfault when launched on a nonexistant directory (#3012787) + - Fixed segfault when root dir only contains hidden files + - Improved browsing performance + - More intuitive multi-page browsing + - Display size graph by default + - Various minor fixes 1.6 - 2009-10-23 - - Implemented hard link detection - - Properly select the next item after deletion - - Removed reliance of dirfd() - - Fixed non-void return in void delete_process() - - Fixed several tiny memory leaks - - Return to previously opened directory on failed recalculation - - Properly display MiB units instead of MB (IEEE 1541 - bug #2831412) - - Link to ncursesw when available - - Improved support for non-ASCII characters - - VIM keybindings for browsing through the tree (#2788249, #1880622) + - Implemented hard link detection + - Properly select the next item after deletion + - Removed reliance of dirfd() + - Fixed non-void return in void delete_process() + - Fixed several tiny memory leaks + - Return to previously opened directory on failed recalculation + - Properly display MiB units instead of MB (IEEE 1541 - bug #2831412) + - Link to ncursesw when available + - Improved support for non-ASCII characters + - VIM keybindings for browsing through the tree (#2788249, #1880622) 1.5 - 2009-05-02 - - Fixed incorrect apparent size on directory refresh - - Browsing keys now work while file info window is displayed - - Current directory is assumed when no directory is specified - - Size graph uses the apparent size if that is displayed - - Items are ordered by displayed size rather than disk usage - - Removed switching between powers of 1000/1024 - - Don't rely on the availability of suseconds_t - - Correctly handle paths longer than PATH_MAX - - Fixed various bugs related to rpath() - - Major code rewrite - - Fixed line width when displaying 100% + - Fixed incorrect apparent size on directory refresh + - Browsing keys now work while file info window is displayed + - Current directory is assumed when no directory is specified + - Size graph uses the apparent size if that is displayed + - Items are ordered by displayed size rather than disk usage + - Removed switching between powers of 1000/1024 + - Don't rely on the availability of suseconds_t + - Correctly handle paths longer than PATH_MAX + - Fixed various bugs related to rpath() + - Major code rewrite + - Fixed line width when displaying 100% 1.4 - 2008-09-10 - - Removed the startup window - - Filenames ending with a tidle (~) will now also 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 - - Fixed display of disk usage and apparent sizes - - Updated ncdu -h - - Included patches for Cygwin - - Cursor now follows the selected item - - Added spaces around path (debian #472194) - - Fixed segfault on empty directory (debian #472294) - - A few code rewrites and improvements + - Removed the startup window + - Filenames ending with a tidle (~) will now also + 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 + - Fixed display of disk usage and apparent sizes + - Updated ncdu -h + - Included patches for Cygwin + - Cursor now follows the selected item + - Added spaces around path (debian #472194) + - Fixed segfault on empty directory (debian #472294) + - A few code rewrites and improvements 1.3 - 2007-08-05 - - Added 'r'-key to refresh the current directory - - Removed option to calculate apparent size: both the disk usage and the apparent size are calculated. - - 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 - - configure checks for ncurses.h (bug #1764304) + - Added 'r'-key to refresh the current directory + - Removed option to calculate apparent size: both + the disk usage and the apparent size are calculated. + - 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 + - configure checks for ncurses.h (bug #1764304) 1.2 - 2007-07-24 - - Fixed some bugs on cygwin - - Added du-like exclude patterns - - Fixed bug #1758403: large directories work fine now - - Rewrote a large part of the code - - Fixed a bug with wide characters - - Performance improvements when browsing large dir + - Fixed some bugs on cygwin + - Added du-like exclude patterns + - Fixed bug #1758403: large directories work fine now + - Rewrote a large part of the code + - Fixed a bug with wide characters + - Performance improvements when browsing large dirs 1.1 - 2007-04-30 - - Deleting files and directories is now possible from within ncdu. - - The key for sorting directories between files has changed to 't' instead of 'd'. - The 'd'-key is now used for deleting files. + - Deleting files and directories is now possible from + within ncdu. + - 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 - - First stable release - - Small code cleanup - - Added a key to toggle between sorting dirs before files and dirs between files - - Added graphs and percentages to the directory browser (can be enabled or disabled with the 'g'-key) + - First stable release + - Small code cleanup + - Added a key to toggle between sorting dirs before + 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 - - When browsing back to the previous directory, the directory you're getting - back from will be selected. - - Added directory scanning in quiet mode to save bandwidth on remote connections. + - When browsing back to the previous directory, the + directory you're getting back from will be selected. + - Added directory scanning in quiet mode to save + bandwidth on remote connections. 0.2 - 2007-02-26 - - Fixed compliance with some operating systems: replaced realpath() with with my own - implementation, and gettimeofday() is not required anymore (but still highly recommended) - - Added a warning for terminals smaller than 60x16 - - Mountpoints (or any other directory pointing to another filesystem) are now considered to be - directories rather than files. + - Fixed POSIX compliance: replaced realpath() with my + own implementation, and gettimeofday() is not + required anymore (but highly recommended) + - Added a warning for terminals smaller than 60x16 + - Mountpoints (or any other directory pointing to + another filesystem) are now considered to be + directories rather than files. 0.1 - 2007-02-21 - - Initial version + - Initial version diff --git a/dat/ncdu-man b/dat/ncdu-man index e72347d..ef2d4b0 100644 --- a/dat/ncdu-man +++ b/dat/ncdu-man @@ -1,5 +1,3 @@ -.TH ncdu 1 "Nov 3, 2011" "ncdu-1.8" "ncdu manual" - =head1 NAME B - NCurses Disk Usage @@ -18,35 +16,106 @@ provides a fast way to see what directories are using your disk space. =head1 OPTIONS +=head2 Mode Selection + =over =item -h -Print a short help message. - -=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. +Print a short help message and quit. =item -v -Print version. +Print ncdu version and quit. + +=item -f I + +Load the given file, which has earlier been created with the C<-o> option. If +I 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 + +Scan the given directory. + +=item -o I + +Export all necessary information to I instead of opening the browser +interface. If I 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 -Only count files and directories on the same filesystem as the specified -I. +Do not cross filesystem boundaries, i.e. only count files and directories on +the same filesystem as the directory being scanned. =item --exclude I -Exclude files that match I. This argument can be added multiple times -to add more patterns. +Exclude files that match I. The files will still be displayed by +default, but are not counted towards the disk usage statistics. This argument +can be added multiple times to add more patterns. =item -X I, --exclude-from I @@ -127,6 +196,47 @@ Quit =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 Every disk usage analysis utility has its own way of (not) counting hard links. diff --git a/download/ncdu-1.9.tar.gz.asc b/download/ncdu-1.9.tar.gz.asc new file mode 100644 index 0000000..2e90808 --- /dev/null +++ b/download/ncdu-1.9.tar.gz.asc @@ -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----- diff --git a/download/ncdu-1.9.tar.gz.md5 b/download/ncdu-1.9.tar.gz.md5 new file mode 100644 index 0000000..d027c1b --- /dev/null +++ b/download/ncdu-1.9.tar.gz.md5 @@ -0,0 +1 @@ +93258079db897d28bb8890e2db89b1fb ncdu-1.9.tar.gz diff --git a/download/ncdu-1.9.tar.gz.sha1 b/download/ncdu-1.9.tar.gz.sha1 new file mode 100644 index 0000000..e7864a1 --- /dev/null +++ b/download/ncdu-1.9.tar.gz.sha1 @@ -0,0 +1 @@ +27cb5464b192db8ffdf0a894fe51d29985348eb0 ncdu-1.9.tar.gz diff --git a/index.cgi b/index.cgi index 0260c83..6a02ca5 100755 --- a/index.cgi +++ b/index.cgi @@ -12,6 +12,8 @@ BEGIN { ($ROOT = abs_path $0) =~ s{index\.cgi$}{}; } 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-07-10', '/ncdc', 'ncdc 1.12 released.' ], [ '2012-05-15', '/ncdc', 'ncdc 1.11 released.' ], @@ -26,8 +28,8 @@ my @changes = ( [ '2012-02-13', '/ncdc', 'ncdc 1.8 released.' ], [ '2012-01-19', '/tuwf', 'TUWF 0.2 released.' ], [ '2012-01-17', undef, 'Complete site redesign.' ], - [ '2011-12-30', '/ncdc/', 'ncdc 1.7 released!' ], - [ '2011-12-07', '/ncdc/', 'ncdc 1.6 released!' ], + [ '2011-12-30', '/ncdc', 'ncdc 1.7 released!' ], + [ '2011-12-07', '/ncdc', 'ncdc 1.6 released!' ], [ '2011-11-26', '/doc', 'Added article section and the article on SQLite.' ], [ '2011-11-03', '/ncdu', 'ncdu 1.8 released!' ], [ '2011-11-03', '/ncdc', 'ncdc 1.5 released!' ],