public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/bsh] epel10: - Use jline in bsh script for command history support.
@ 2026-07-15  9:36 
  0 siblings, 0 replies; only message in thread
From:  @ 2026-07-15  9:36 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/bsh
Branch : epel10
Commit : 30e46ba8227dcabe20c2fbc49460c981dbd0acbe
Author : Ville Skyttä <ville.skytta@iki.fi>
Date   : 2010-11-26T00:12:25+02:00
Stats  : +10/-160 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/bsh/c/30e46ba8227dcabe20c2fbc49460c981dbd0acbe?branch=epel10

Log:
- Use jline in bsh script for command history support.

---
diff --git a/bsh-readline.patch b/bsh-readline.patch
deleted file mode 100644
index 999c317..0000000
--- a/bsh-readline.patch
+++ /dev/null
@@ -1,151 +0,0 @@
---- BeanShell/src/bsh/Interpreter.java~	2003-09-03 19:56:58.000000000 -0400
-+++ BeanShell/src/bsh/Interpreter.java	2004-01-25 09:59:41.730059108 -0500
-@@ -38,6 +38,13 @@
- import java.lang.reflect.Method;
- import java.lang.reflect.InvocationTargetException;
- 
-+import bsh.util.BshCompleter;
-+import bsh.util.NameCompletionTable;
-+import bsh.classpath.ClassManagerImpl;
-+import org.gnu.readline.Readline;
-+import org.gnu.readline.ReadlineLibrary;
-+import org.gnu.readline.ReadlineReader;
-+
- /**
- 	The BeanShell script interpreter.
- 
-@@ -394,10 +401,59 @@
- 			else
- 				src = System.in;
- 
--            Reader in = new CommandLineReader( new InputStreamReader(src));
--            Interpreter interpreter = 
--				new Interpreter( in, System.out, System.err, true );
--        	interpreter.run();
-+            Reader in = null;
-+            boolean usingReadline = false;
-+            String backingLib = System.getProperty("bsh.console.readlinelib");
-+            if (backingLib != null) {
-+                try {
-+                    File history = new File(System.getProperty("user.home") +
-+                                            File.separator + ".bsh_history");
-+                    if (!history.exists()) {
-+                        try {
-+                            history.createNewFile();
-+                        } catch(IOException ioe) {
-+                            debug("Unable to create history  " + history.getAbsolutePath());
-+                        }
-+                    }
-+                    ReadlineLibrary lib = ReadlineLibrary.byName(backingLib);
-+                    // should I wrap CommandLineReader around it?
-+                    if (history.canWrite() && history.canRead()) {
-+                        in = new ReadlineReader("bsh % ", history,lib);
-+                    } else {
-+                        in = new ReadlineReader("bsh % ",lib);
-+                        debug("Unable to read/write history  " + history.getAbsolutePath());
-+                    }
-+                } catch (IOException ioe) {
-+                    System.err.println("Unable to invoke ReadlineReader " +
-+                                       "due to: " + ioe);
-+                }
-+            }
-+            if (in == null)
-+                in = new CommandLineReader( new InputStreamReader(src));
-+            else
-+                usingReadline = true;
-+            Interpreter interpreter =
-+                new Interpreter( in, System.out, System.err, true );
-+            if (usingReadline) {
-+                NameCompletionTable nct = new NameCompletionTable();
-+                nct.add(interpreter.getNameSpace());
-+
-+                /** ClassManager does a lot of chatting to the stdout,
-+                 *  so this has been commented out for the time being
-+                 **/
-+
-+//              try {
-+//                  BshClassManager bcm = BshClassManager.getClassManager();
-+//                      if (bcm != null) {
-+//                          nct.add(((ClassManagerImpl)bcm).getClassPath());
-+//                      }
-+//                  } catch(ClassPathException cpe) {
-+//                      debug("classpath exception in name compl:" + cpe);
-+//                  }
-+
-+                Readline.setCompleter(new BshCompleter(nct));
-+            }
-+            interpreter.run();
-         }
-     }
- 
-@@ -445,7 +501,7 @@
-                 System.err.flush();
-                 Thread.yield();  // this helps a little
- 
--                if ( interactive )
-+                if ( interactive && !(in instanceof ReadlineReader))
-                     print( getBshPrompt() );
- 
-                 eof = Line();
-@@ -548,10 +604,17 @@
-             }
-         }
- 
--		if ( interactive && exitOnEOF )
--			System.exit(0);
-+        if ( interactive && exitOnEOF ) {
-+            /* should be done for all streams in general, but this
-+             * ensures that the history for readline is flushed */
-+            try {
-+                in.close();
-+            } catch (IOException ioe) {
-+            }
-+	
-+            System.exit(0);
-     }
--
-+   }
- 	// begin source and eval
- 
- 	/**
---- /dev/null	2003-10-19 02:52:03.000000000 -0400
-+++ BeanShell/src/bsh/util/BshCompleter.java	2004-01-25 10:14:10.184458217 -0500
-@@ -0,0 +1,38 @@
-+package bsh.util;
-+
-+import org.gnu.readline.ReadlineCompleter;
-+
-+/**
-+ * An adapter for org.gnu.readline's ReadlineCompleter interface to map to
-+ * BeanShell's NameCompleter interface.
-+ *
-+ * @see org.gnu.readline.ReadlineReader
-+ * @version $Revision: 1.1 $
-+ * @author Shane Celis <shane@terraspring.com>
-+ **/
-+public class BshCompleter implements ReadlineCompleter {
-+
-+    private NameCompletion completer;
-+
-+    /**
-+     * Constructs a <code>ReadlineCompleter</code> out of a
-+     * <code>NameCompleter</code> object.
-+     **/
-+    public BshCompleter(NameCompletion completer) {
-+        this.completer = completer;
-+    }
-+
-+    /**
-+     * Returns String of completion if unambiguous, otherwise null
-+     **/
-+    public String completer(String text, int state) {
-+        // Not sure what state is used for in ReadlineCompleter
-+        String[] completions = completer.completeName(text);
-+        if (completions.length == 1 && state == 0) {
-+            return completions[0];
-+        } else {
-+            return null;        // ambiguous result
-+        }
-+    }
-+
-+}

diff --git a/bsh.spec b/bsh.spec
index adcac13..2d5312a 100644
--- a/bsh.spec
+++ b/bsh.spec
@@ -102,6 +102,7 @@ Demonstrations and samples for %{name}.
 Summary:        %{name} utilities
 Group:          Development/Tools
 Requires:       %{name} = %{epoch}:%{version}-%{release}
+Requires:       jline
 Provides:       %{name}-desktop = %{epoch}:%{version}-%{release}
 Obsoletes:      %{name}-desktop < 0:1.3.0-17
 # So that yum will pull this in on base package upgrades from < 0:1.3.0-17
@@ -221,6 +222,11 @@ install -m 644 dist/bshservlet-wbsh.war $RPM_BUILD_ROOT%{_datadir}/%{name}/webap
 install -d $RPM_BUILD_ROOT%{_bindir}
 
 function bsh_script() {
+    local jars=%{name}.jar runclass=
+    if [ $2 = jline.ConsoleRunner ] ; then
+        jars="$jars jline.jar"
+        runclass=bsh.Interpreter
+    fi
 cat > $RPM_BUILD_ROOT%{_bindir}/$1 << EOF
 #!/bin/sh
 #
@@ -246,13 +252,7 @@ if [ -n "\$BSH_DEBUG" ]; then
   BASE_FLAGS=-Ddebug=true
 fi
 
-BASE_JARS="%{name}.jar"
-
-#if [ -f /usr/lib/libJavaReadline.so ]; then
-#  BASE_FLAGS="$BASE_FLAGS -Djava.library.path=/usr/lib"
-#  BASE_FLAGS="\$BASE_FLAGS -Dbsh.console.readlinelib=GnuReadline"
-#  BASE_JARS="\$BASE_JARS libreadline-java.jar"
-#fi
+BASE_JARS="$jars"
 
 # Set parameters
 set_jvm
@@ -261,11 +261,11 @@ set_flags \$BASE_FLAGS
 set_options \$BASE_OPTIONS
 
 # Let's start
-run "\$@"
+run $runclass "\$@"
 EOF
 }
 
-bsh_script bsh bsh.Interpreter
+bsh_script bsh jline.ConsoleRunner
 bsh_script bsh-desktop bsh.Console
 
 cat > $RPM_BUILD_ROOT%{_bindir}/%{name}doc << EOF
@@ -329,6 +329,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 * Thu Nov 25 2010 Ville Skyttä <ville.skytta@iki.fi> - 0:1.3.0-17
 - Rename -desktop to -utils, move shell scripts and menu entry to it (#417491).
 - Bring icon cache scriptlets up to date with current guidelines.
+- Use jline in bsh script for command history support.
 
 * Thu Nov 25 2010 Stanislav Ochotnicky <sochotnicky@redhat.com> - 0:1.3.0-16
 - Fix pom filenames (Resolves rhbz#655791)

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-15  9:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-15  9:36 [rpms/bsh] epel10: - Use jline in bsh script for command history support 

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox