Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.sys.apple2.programmer > #1465 > unrolled thread
| Started by | D Finnigan <dog_cow@macgui.com> |
|---|---|
| First post | 2015-01-04 17:32 +0000 |
| Last post | 2015-01-20 01:10 -0600 |
| Articles | 6 — 5 participants |
Back to article view | Back to comp.sys.apple2.programmer
The hush shell for GNO D Finnigan <dog_cow@macgui.com> - 2015-01-04 17:32 +0000
Re: The hush shell for GNO awanderin <awanderin@gmail.com> - 2015-01-04 22:23 -0700
Re: The hush shell for GNO Steven Hirsch <snhirsch@gmail.com> - 2015-01-05 07:23 -0500
Re: The hush shell for GNO Kelvin Sherlock <email@domain.com> - 2015-01-05 10:20 -0500
Re: The hush shell for GNO Steven Hirsch <snhirsch@gmail.com> - 2015-01-05 12:12 -0500
Re: The hush shell for GNO Stephen Heumann <stephenheumann@googlemail.com> - 2015-01-20 01:10 -0600
| From | D Finnigan <dog_cow@macgui.com> |
|---|---|
| Date | 2015-01-04 17:32 +0000 |
| Subject | The hush shell for GNO |
| Message-ID | <dog_cow-1420392780@macgui.com> |
This is a port of the hush shell to the GNO multitasking environment for the
Apple IIgs. Hush is a Bourne/POSIX-style shell that was originally part of
BusyBox. In general, it implements most of the features you would expect,
although there are a few missing ones (such as tilde expansion and aliases).
https://github.com/sheumann/hush
Supported features include:
if/then/elif/else/fi conditionals
for/in/do/done loops
while loops
case/esac
functions
redirections (including specifying file descriptors)
here documents
arithmetic with $((...))
command substitution with backticks or $(...)
glob pattern expansion (including globbing across multiple directory
levels)
command line editing with history and tab completion
job control
and much more...
The (useful) command line options are:
hush [-nxl] [-c 'SCRIPT' [ARG0 [ARGS]] / FILE [ARGS]]
These all behave similarly to other Bourne/POSIX-style shells (e.g. Bash).
Run help within hush to get a list of built-in commands.
Installation
To use hush, you need GNO 2.0.6. Just copy the "hush" binary to a suitable
location. (You may want to install it as /bin/sh to support portable scripts
that expect a Bourne-type shell in that location).
Building
To build it, you also need ORCA/C 2.1.x and plenty of memory (8MB is
enough). You also need to have a copy of the ltermcap library from GNO 2.0.4
installed as /usr/lib/libtermcap.204 (the GNO 2.0.6 version is broken and
won't work). Run make or (if the source files don't have correct filetypes)
make build. You should also be able to build it on modern *nix systems by
running make, although this is meant mainly for testing purposes.
GNO-specific notes and known issues
$PATH is expected to be in the usual GNO format (searched backwards,
with spaces as separators).
File descriptors 0, 1, and 2 appearing in shell operations like
redirections are translated to 1, 2, and 3, respectively. This maintains
compatibility with Unix shell scripts that expect these to be stdin,
stdout, and stderr.
Glob expansion doesn't work with patterns containing : directory
separators. Use / separators instead.
In TMTerm, command-line editing operations can produce messed-up
formatting.
Startup files
This version of hush will read commands from several files at startup, if
they are present:
First, it runs commands from /etc/hushenv, then from $HOME/hushenv.
Next, if it is a login shell, it runs commands from /etc/profile, then
from $HOME/hushprofile (if it is present) or $HOME/profile.
Finally, if it is an interactive shell, it runs commands from
$HOME/hushrc.
(It also supports versions of the user startup files with names starting
with ., which will be used preferentially if present, but these names are
not compatible with ProDOS filesystems.)
The etc directory contains sample hushenv and profile scripts, suitable for
installation in /etc or in your home directory.
License
Hush is licensed under the GNU General Public License version 2, contained
in the file LICENSE. Some individual source files contain code licensed
under other GPL-compatible permissive licenses. See the individual source
files for full licensing details and copyright notices.
The compiled hush binary also contains code from the ORCA/C runtime
libraries, to which the following notice applies:
This program contains material from the ORCA/C Run-Time Libraries, copyright
1987-1996 by Byte Works, Inc. Used with permission.
[toc] | [next] | [standalone]
| From | awanderin <awanderin@gmail.com> |
|---|---|
| Date | 2015-01-04 22:23 -0700 |
| Message-ID | <m3r3v9er6e.fsf@gmail.com> |
| In reply to | #1465 |
D Finnigan <dog_cow@macgui.com> writes: > This is a port of the hush shell to the GNO multitasking environment for the > Apple IIgs. Hush is a Bourne/POSIX-style shell that was originally part of > BusyBox. In general, it implements most of the features you would expect, > although there are a few missing ones (such as tilde expansion and aliases). > > https://github.com/sheumann/hush Well, that is very cool! Thanks for posting this notice! -- Jerry awanderin at gmail dot com
[toc] | [prev] | [next] | [standalone]
| From | Steven Hirsch <snhirsch@gmail.com> |
|---|---|
| Date | 2015-01-05 07:23 -0500 |
| Message-ID | <b4OdnZH9uZ6kHzfJnZ2dnUU7-Y-dnZ2d@giganews.com> |
| In reply to | #1465 |
On 01/04/2015 12:32 PM, D Finnigan wrote: > This is a port of the hush shell to the GNO multitasking environment for the > Apple IIgs. Hush is a Bourne/POSIX-style shell that was originally part of > BusyBox. In general, it implements most of the features you would expect, > although there are a few missing ones (such as tilde expansion and aliases). > > https://github.com/sheumann/hush Nice work! But, it would be helpful if a binary was included in the distribution. I just downloaded the zip and found only sources.
[toc] | [prev] | [next] | [standalone]
| From | Kelvin Sherlock <email@domain.com> |
|---|---|
| Date | 2015-01-05 10:20 -0500 |
| Message-ID | <m8ea3k$igs$1@dont-email.me> |
| In reply to | #1467 |
On 2015-01-05 12:23:20 +0000, Steven Hirsch said: > On 01/04/2015 12:32 PM, D Finnigan wrote: >> This is a port of the hush shell to the GNO multitasking environment for the >> Apple IIgs. Hush is a Bourne/POSIX-style shell that was originally part of >> BusyBox. In general, it implements most of the features you would expect, >> although there are a few missing ones (such as tilde expansion and aliases). >> >> https://github.com/sheumann/hush > > Nice work! But, it would be helpful if a binary was included in the > distribution. I just downloaded the zip and found only sources. There's a shk file with a binary (and source code) here: https://github.com/sheumann/hush/releases
[toc] | [prev] | [next] | [standalone]
| From | Steven Hirsch <snhirsch@gmail.com> |
|---|---|
| Date | 2015-01-05 12:12 -0500 |
| Message-ID | <x-CdnQzxxt16WDfJnZ2dnUU7-X2dnZ2d@giganews.com> |
| In reply to | #1468 |
On 01/05/2015 10:20 AM, Kelvin Sherlock wrote: > On 2015-01-05 12:23:20 +0000, Steven Hirsch said: > >> On 01/04/2015 12:32 PM, D Finnigan wrote: >>> This is a port of the hush shell to the GNO multitasking environment for the >>> Apple IIgs. Hush is a Bourne/POSIX-style shell that was originally part of >>> BusyBox. In general, it implements most of the features you would expect, >>> although there are a few missing ones (such as tilde expansion and aliases). >>> >>> https://github.com/sheumann/hush >> >> Nice work! But, it would be helpful if a binary was included in the >> distribution. I just downloaded the zip and found only sources. > > There's a shk file with a binary (and source code) here: > > https://github.com/sheumann/hush/releases > Thanks! I cannot stand the github web interface. It is anything but obvious that the "123 Releases" field is actually a link _to_ those releases. I assumed it to be simply a displayed metric.
[toc] | [prev] | [next] | [standalone]
| From | Stephen Heumann <stephenheumann@googlemail.com> |
|---|---|
| Date | 2015-01-20 01:10 -0600 |
| Message-ID | <m9kv0u$tjf$1@dont-email.me> |
| In reply to | #1465 |
On 2015-01-04 17:32:37 +0000, D Finnigan said: > This is a port of the hush shell to the GNO multitasking environment for the > Apple IIgs. Hush is a Bourne/POSIX-style shell that was originally part of > BusyBox. Hi, I'm the author of this. I've updated it to v0.3, which includes some fairly significant bug fixes, so you should get the update if you're using it. As Kelvin mentioned, releases with binaries are at: https://github.com/sheumann/hush/releases I think it's working pretty well now, but let me know if you run into any problems or have any comments about it. -- Stephen Heumann
[toc] | [prev] | [standalone]
Back to top | Article view | comp.sys.apple2.programmer
csiph-web