Revision: 5689
          http://jnode.svn.sourceforge.net/jnode/?rev=5689&view=rev
Author:   lsantha
Date:     2009-12-03 21:18:57 +0000 (Thu, 03 Dec 2009)

Log Message:
-----------
Fixed NPE. Improved help. Applied patch by Mario Zsilak.

Modified Paths:
--------------
    trunk/cli/descriptors/org.jnode.command.file.xml
    trunk/cli/src/commands/org/jnode/command/file/DuCommand.java

Modified: trunk/cli/descriptors/org.jnode.command.file.xml
===================================================================
--- trunk/cli/descriptors/org.jnode.command.file.xml    2009-11-23 17:09:02 UTC 
(rev 5688)
+++ trunk/cli/descriptors/org.jnode.command.file.xml    2009-12-03 21:18:57 UTC 
(rev 5689)
@@ -173,10 +173,10 @@
           <option argLabel="exclude"                   shortName=""  
longName="exclude"/> <!-- exclude has no shortname -->
           <option argLabel="exclude-from"              shortName="X" 
longName="exclude-from"/>
           <option argLabel="block-size-custom"     shortName="B" 
longName="block-size"/> <!-- not in man page, but works on unix like systems -->
-          <option argLabel="filesystem-block-size"     shortName=""  
longName="fs-block-size"/> <!-- not in man page, but works on unix like systems 
-->
+          <option argLabel="filesystem-block-size"     shortName=""  
longName="fs-block-size"/> <!-- testing -->
         </optionSet>
       </sequence>
-    </syntax>    
+    </syntax>
     <syntax alias="find">
       <sequence description="find files or directories">
         <repeat minCount="0">

Modified: trunk/cli/src/commands/org/jnode/command/file/DuCommand.java
===================================================================
--- trunk/cli/src/commands/org/jnode/command/file/DuCommand.java        
2009-11-23 17:09:02 UTC (rev 5688)
+++ trunk/cli/src/commands/org/jnode/command/file/DuCommand.java        
2009-12-03 21:18:57 UTC (rev 5689)
@@ -56,7 +56,7 @@
     private static final String HELP_TOTAL =
             "Print a grand total of all arguments after all arguments have 
been processed. This can be used to find out the total disk usage of a given 
set of files or directories.";
     private static final String HELP_DEREF_ARGS =
-            "Dereference symbolic links that are command line arguments. Does 
not affect other symbolic links.  This is helpful for finding out the disk 
usage of directories, such as `/usr/tmp', which are often symbolic links.";
+            "Dereference symbolic links that are command line arguments. Does 
not affect other symbolic links.  This is helpful for finding out the disk 
usage of directories, such as `/usr/tmp', which are often symbolic links. (not 
implemented";
     private static final String HELP_HUMAN_READABLE_1024 =
             "Append a size letter such as `M' for megabytes to each size. 
Powers of 1024 are used, not 1000; `M' stands for 1,048,576 bytes. Use the `-H' 
or `--si' option if you prefer powers of 1000.";
     private static final String HELP_HUMAN_READABLE_1000 =
@@ -64,22 +64,22 @@
     private static final String HELP_BLOCK_SIZE_1024 =
             "Print sizes in 1024-byte blocks, overriding the default block 
size";
     private static final String HELP_COUNT_LINKS =
-            "Count the size of all files, even if they have appeared already 
(as a hard link).";
+            "Count the size of all files, even if they have appeared already 
(as a hard link). (not implemented";
     private static final String HELP_DEREF =
-            "Dereference symbolic links (show the disk space used by the file 
or directory that the link points to instead of the space used by the link).";
+            "Dereference symbolic links (show the disk space used by the file 
or directory that the link points to instead of the space used by the link). 
(not implemented";
     private static final String HELP_MAX_DEPTH =
-            "Show the total for each directory (and file if -all) that is at 
most MAX_DEPTH levels down from the root of the hierarchy.  The root is at 
level 0, so `du --max-depth=0' is equivalent to `du -s'.";
+            "Show the total for each directory (and file if -all) that is at 
most MAX_DEPTH levels down from the root of the hierarchy.  The root is at 
level 0, so `du --max-depth=0' is equivalent to `du -s'. (not tested)";
     private static final String HELP_BLOCK_SIZE_1024x1024 =
             "Print sizes in megabyte (that is, 1,048,576-byte) blocks.";
     private static final String HELP_SUM = "Display only a total for each 
argument.";
     private static final String HELP_SEPERATE_DIRS =
             "Report the size of each directory separately, not including the 
sizes of subdirectories.";
     private static final String HELP_ONE_FS =
-            "Skip directories that are on different filesystems from the one 
that the argument being processed is on.";
+            "Skip directories that are on different filesystems from the one 
that the argument being processed is on. (not implemented)";
     private static final String HELP_EXCLUDE =
-            "When recursing, skip subdirectories or files matching PAT. For 
example, `du --exclude='*.o'' excludes files whose names end in `.o'.";
+            "When recursing, skip subdirectories or files matching PAT. For 
example, `du --exclude='*.o'' excludes files whose names end in `.o'. (not 
tested)";
     private static final String HELP_EXCLUDE_FROM =
-            "Like `--exclude', except take the patterns to exclude from FILE, 
one per line.  If FILE is `-', take the patterns from standard input.";
+            "Like `--exclude', except take the patterns to exclude from FILE, 
one per line.  If FILE is `-', take the patterns from standard input. (not 
implemented)";
     private static final String HELP_BLOCK_SIZE_CUSTOM =
             "Print sizes in the user defined block size, overriding the 
default block size";
     private static final String HELP_FS_BLOCK_SIZE =
@@ -225,7 +225,7 @@
 
     private void printFileSize(final File filename, final long size) {
         if (argAll.isSet()) {
-            out.println(size + "\t" + filename);
+            out.println(sizeToString(size) + "\t" + filename);
         }
     }
 
@@ -325,7 +325,7 @@
                     retValue = ((FSBlockDeviceAPI) device).getSectorSize();
 
                 } else {
-                    logger.warn("No FSBlockDeviceAPI device for device" + 
device);
+                    logger.warn("No FSBlockDeviceAPI device for device: " + 
device);
                     logger.info("Using default block-size: " + 
DEFAULT_FILESYSTEM_BLOCK_SIZE);
                     logger.info("override with --fs-block-size");
                 }
@@ -386,12 +386,9 @@
 
         public Directory getParent() {
 
-            long dirSize = size + calc(directory.length()); // only the size 
for
-            // this directory +
-            // files (in other
-            // words: excludes
-            // the size of
-            // subDirs)
+            long dirSize = size + calc(directory.length());
+            // only the size for this directory + files 
+            // (in other words: excludes the size of subDirs)
             long subDirSize = 0;
 
             while (!subDirs.isEmpty()) {
@@ -408,6 +405,11 @@
         public long getSize() {
             return size;
         }
+        
+        @Override
+        public int hashCode() {
+            return directory.hashCode();
+        }
 
         public boolean equals(Object other) {
             boolean retValue = false;
@@ -450,18 +452,28 @@
         }
 
         @Override
+        /**
+         * Set the "root" Directory to the Starting Dir
+         */
         protected void handleStartingDir(File file) throws IOException {
             log("starting dir: " + file);
             root = new Directory(null, file);
         }
 
         @Override
+        /**
+         * Calculate the "root" directory and reset the "current" directory .. 
we are done for now
+         */
         protected void lastAction(boolean wasCancelled) {
             root.getParent();
+            currentDir = null;
             totalSize = root.getSize();
         }
 
         @Override
+        /**
+         * add the currently handled directory/file to the correct position in 
the hierarchy
+         */
         public void handleDir(File file) {
             log("handleDir: " + file);
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing. 
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
_______________________________________________
Jnode-svn-commits mailing list
Jnode-svn-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jnode-svn-commits

Reply via email to