You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2008/10/04 07:50:08 UTC

svn commit: r701601 - in /geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main: java/org/apache/geronimo/gshell/commands/vfs/ resources/META-INF/spring/ resources/org/apache/geronimo/gshell/commands/vfs/

Author: jdillon
Date: Fri Oct  3 22:50:07 2008
New Revision: 701601

URL: http://svn.apache.org/viewvc?rev=701601&view=rev
Log:
Add basic 'grep' command

Added:
    geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/GrepAction.java   (with props)
    geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/org/apache/geronimo/gshell/commands/vfs/GrepAction.properties
      - copied, changed from r701596, geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/org/apache/geronimo/gshell/commands/vfs/FileInfoAction.properties
Modified:
    geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml

Added: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/GrepAction.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/GrepAction.java?rev=701601&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/GrepAction.java (added)
+++ geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/GrepAction.java Fri Oct  3 22:50:07 2008
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.commands.vfs;
+
+import org.apache.geronimo.gshell.command.CommandContext;
+import org.apache.geronimo.gshell.io.IO;
+import org.apache.geronimo.gshell.clp.Argument;
+import org.apache.oro.text.MatchAction;
+import org.apache.oro.text.MatchActionProcessor;
+import org.apache.oro.text.MatchActionInfo;
+import org.apache.oro.text.regex.MalformedPatternException;
+import org.apache.commons.vfs.FileObject;
+import org.codehaus.plexus.util.IOUtil;
+
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.BufferedInputStream;
+
+/**
+ * Displays lines matching a pattern.
+ *
+ * @version $Rev$ $Date$
+ */
+public class GrepAction
+    extends VfsActionSupport
+{
+    @Argument(index=0, required=true)
+    private String pattern;
+
+    @Argument(index=1, required=true)
+    private String path;
+
+    public Object execute(final CommandContext context) throws Exception {
+        assert context != null;
+        final IO io = context.getIo();
+
+        MatchActionProcessor processor = new MatchActionProcessor();
+
+        try {
+            processor.addAction(pattern, new MatchAction() {
+                public void processMatch(final MatchActionInfo info) {
+                    io.info("{}", info.line);
+                }
+            });
+        }
+        catch (MalformedPatternException e) {
+            io.error("Invalid pattern: " + e, e);
+            return Result.FAILURE;
+        }
+
+        FileObject file = resolveFile(context, path);
+        BufferedInputStream input = new BufferedInputStream(file.getContent().getInputStream());
+        try {
+            processor.processMatches(input, io.outputStream);
+        }
+        finally {
+            IOUtil.close(input);
+            closeFile(file);
+        }
+
+        return Result.SUCCESS;
+    }
+}

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/GrepAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/GrepAction.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/GrepAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml?rev=701601&r1=701600&r2=701601&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml Fri Oct  3 22:50:07 2008
@@ -111,6 +111,18 @@
                     <null/>
                 </gshell:completers>
             </gshell:command>
+
+            <gshell:command name="grep">
+                <gshell:action class="org.apache.geronimo.gshell.commands.vfs.GrepAction"/>
+                <!--
+                FIXME: This does not work, won't complete the second argument :-(
+                <gshell:completers>
+                    <bean class="jline.NullCompletor"/>
+                    <ref bean="fileObjectNameCompleter"/>
+                    <null/>
+                </gshell:completers>
+                -->
+            </gshell:command>
         </gshell:command-bundle>
 
         <!--

Copied: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/org/apache/geronimo/gshell/commands/vfs/GrepAction.properties (from r701596, geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/org/apache/geronimo/gshell/commands/vfs/FileInfoAction.properties)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/org/apache/geronimo/gshell/commands/vfs/GrepAction.properties?p2=geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/org/apache/geronimo/gshell/commands/vfs/GrepAction.properties&p1=geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/org/apache/geronimo/gshell/commands/vfs/FileInfoAction.properties&r1=701596&r2=701601&rev=701601&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/org/apache/geronimo/gshell/commands/vfs/FileInfoAction.properties (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/org/apache/geronimo/gshell/commands/vfs/GrepAction.properties Fri Oct  3 22:50:07 2008
@@ -21,12 +21,15 @@
 ## $Rev$ $Date$
 ##
 
-command.name=fileinfo
+command.name=grep
 
-command.description=Displays information about a file.
+command.description=Displays lines matching a pattern.
 
-command.argument.path=Path of file to display
+command.argument.pattern=Pattern to match
+command.argument.pattern.token=PATTERN
+
+command.argument.path=Path of file to search
 command.argument.path.token=PATH
 
 command.manual=\
-  TODO: fileinfo manual
\ No newline at end of file
+  TODO: grep manual
\ No newline at end of file