Author: gates
Date: Mon Nov 17 12:18:33 2008
New Revision: 718359

URL: http://svn.apache.org/viewvc?rev=718359&view=rev
Log:
PIG-535 Added rmf command to grunt, which is equivalent to rm -f in unix, that 
is, it does not error out if the indicated file/directory is not present to
remove.  Contributed by Ian Holsman.

Modified:
    hadoop/pig/branches/types/src/org/apache/pig/tools/grunt/GruntParser.java
    
hadoop/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj

Modified: 
hadoop/pig/branches/types/src/org/apache/pig/tools/grunt/GruntParser.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/types/src/org/apache/pig/tools/grunt/GruntParser.java?rev=718359&r1=718358&r2=718359&view=diff
==============================================================================
--- hadoop/pig/branches/types/src/org/apache/pig/tools/grunt/GruntParser.java 
(original)
+++ hadoop/pig/branches/types/src/org/apache/pig/tools/grunt/GruntParser.java 
Mon Nov 17 12:18:33 2008
@@ -439,15 +439,19 @@
             mPigServer.registerQuery(cmd, start);
     }
 
-    protected void processRemove(String path) throws IOException
+    protected void processRemove(String path, String options ) throws 
IOException
     {
         ElementDescriptor dfsPath = mDfs.asElement(path);
         
         if (!dfsPath.exists()) {
-            throw new IOException("File or directory " + path + " does not 
exist.");            
+            if (options == null || !options.equalsIgnoreCase("force")) {
+                throw new IOException("File or directory " + path + " does not 
exist."); 
+            }
         }
+        else {
             
-        dfsPath.delete();
+            dfsPath.delete();
+        }
     }
 
     private PigServer mPigServer;

Modified: 
hadoop/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj?rev=718359&r1=718358&r2=718359&view=diff
==============================================================================
--- 
hadoop/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj
 (original)
+++ 
hadoop/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj
 Mon Nov 17 12:18:33 2008
@@ -94,7 +94,7 @@
        
        abstract protected void processPig(String cmd) throws IOException;
 
-       abstract protected void processRemove(String path) throws IOException;
+       abstract protected void processRemove(String path, String opt) throws 
IOException;
        
        abstract protected void processIllustrate(String alias) throws 
IOException;
 
@@ -139,6 +139,7 @@
 TOKEN: {<QUIT: "quit">}
 TOKEN: {<REGISTER: "register">}
 TOKEN: {<REMOVE: "rm">}
+TOKEN: {<REMOVEFORCE: "rmf">}
 TOKEN: {<SET: "set">}
 TOKEN: {<ILLUSTRATE: "illustrate">}
 
@@ -435,8 +436,14 @@
        <REMOVE>
        (
                t1 = GetPath()
-               {processRemove(t1.image);}
-       )+      
+               {processRemove(t1.image, null);}
+       )+
+       |
+       <REMOVEFORCE>
+       (
+               t1 = GetPath()
+               {processRemove(t1.image, "force");}
+       )+
        |
        <SCRIPT_DONE>
        {quit();}


Reply via email to