public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/bsh] epel10: - Use jline in bsh script for command history support.
Date: Wed, 15 Jul 2026 09:36:14 GMT [thread overview]
Message-ID: <178410817413.1.18233527866233830124.rpms-bsh-30e46ba8227d@fedoraproject.org> (raw)
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)
reply other threads:[~2026-07-15 9:36 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178410817413.1.18233527866233830124.rpms-bsh-30e46ba8227d@fedoraproject.org \
--to=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox