ruby/tty-reader: Added (process keyboard input in character)

Signed-off-by: Dave Woodfall <dave@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Tonus 2022-04-29 14:02:34 +01:00 committed by Willy Sudiarto Raharjo
parent 9fe8c86633
commit cf3e87c1dc
No known key found for this signature in database
GPG key ID: 3F617144D7238786
4 changed files with 175 additions and 0 deletions

22
ruby/tty-reader/README Normal file
View file

@ -0,0 +1,22 @@
TTY::Reader provides independent reader component for TTY toolkit.
A pure Ruby library that provides a set of methods for processing
keyboard input in character, line and multiline modes. It maintains
history of entered input with an ability to recall and re-edit those
inputs. It lets you register to listen for keystroke events and trigger
custom key events yourself.
The tty-reader is not compatible with the GNU Readline
and doesn't aim to be.
Features
Pure Ruby
Reading single keypress
Line editing
Reading multiline input
Ability to register for keystroke events
Track input history
No global state
Works on Linux, OS X, FreeBSD and Windows
Supports Ruby versions >= 2.0.0 & JRubyNumber of prompt types for
gathering user input

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
tty-reader: tty-reader (set of methods for processing keyboard input in character)
tty-reader:
tty-reader: TTY::Reader provides independent reader component for TTY toolkit.
tty-reader:
tty-reader:
tty-reader:
tty-reader:
tty-reader:
tty-reader:
tty-reader:
tty-reader:

View file

@ -0,0 +1,124 @@
#!/bin/bash
# Slackware build script for tty-reader
# Copyright 2022, Tonus, Paris
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=tty-reader
VERSION=${VERSION:-0.9.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SRCNAM=tty-reader
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
DESTDIR=$( ruby -r rbconfig -e '
include RbConfig
printf("%s/%s/gems/%s\n",
CONFIG["libdir"],
CONFIG["RUBY_INSTALL_NAME"],
CONFIG["ruby_version"]
)
')
gem specification $CWD/$SRCNAM-$VERSION.gem | \
ruby -r yaml -r rbconfig -e '
c = RbConfig::CONFIG
path = sprintf("%s/%s/gems/%s",
c["libdir"],
c["RUBY_INSTALL_NAME"],
c["ruby_version"])
sys_gemspecs = Dir.glob(path + "/specifications/**/*.gemspec").map {|g| gs = Gem::Specification.load(g); gs.name }
obj = Gem::Specification.from_yaml($stdin)
obj.dependencies.each {|dep|
if not(dep.type == :runtime)
next
end
if not(sys_gemspecs.include?(dep.name))
$stderr.write("WARNING: #{dep.name} gem not found\n")
sleep 0.5
end
}'
gem install \
--local \
--no-update-sources \
--ignore-dependencies \
--backtrace \
--install-dir $PKG/$DESTDIR \
--bindir $PKG/usr/bin \
$CWD/$SRCNAM-$VERSION.gem
# Strip binaries and libraries.
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
tar -x -O --file=$CWD/$SRCNAM-$VERSION.gem data.tar.gz \
| tar -xz -C $PKG/usr/doc/$PRGNAM-$VERSION --file=-
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

View file

@ -0,0 +1,10 @@
PRGNAM="tty-reader"
VERSION="0.9.0"
HOMEPAGE="https://github.com/piotrmurach/tty-reader/"
DOWNLOAD="https://rubygems.org/downloads/tty-reader-0.9.0.gem"
MD5SUM="c31a13e1210fb397e25fd9e115c5f8e0"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="tty-cursor tty-screen wisper"
MAINTAINER="Tonus"
EMAIL="tonus1@gmail.com"