goublu

command module
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2022 License: BSD-3-Clause Imports: 14 Imported by: 0

README

goublu

Goublu is a Go language front end that provides a better console interface to Ublu than the console support provided by Java.

goublu_screenshot

  • Works on
    • OpenBSD
    • Linux
    • Mac OS X
  • Works poorly on
    • Windows

Report bugs or make feature requests in the Issue Tracker

Building

  • Fetch: go get -u github.com/jwoehr/goublu
  • Build: cd $GOPATH/src/github.com/jwoehr/goublu; ./make.sh

Invoking

  • Invoke: ./goublu [-v] [-g "GoubluOpt1=SomeThing:GoubluOpt2=Other:..."] ublu_arg ublu_arg ...
    • If the first argument to goublu is -v then Goublu prints a version message and exits 0.
      • If the first argument to goublu is -g then the next element in the command line is assumed to be a string of Goublu property-like options of the form Opt=Value, each option separated from the next by : . All remaining commandline arguments are passed to Ublu. The Goublu options and their values are case-sensitive and are as follows:
        • UbluDir
          • abs path to dir where ublu.jar resides, default /opt/ublu
        • JavaOpt
          • any option to the Java runtime, e.g, JavaOpt=-Dsomething=other (one option per JavaOpt line)
        • SaveOutDir
          • abs path to where pressing F4 saves the output text, default /tmp
        • PropsFile
          • abs path to a properties file containing these same option=value pairs
        • BgColorIn
          • Input background color, one of:
            • ColorBlack
            • ColorRed
            • ColorGreen
            • ColorYellow
            • ColorBlue
            • ColorMagenta
            • ColorCyan
            • ColorWhite
            • ColorDefault (default terminal colors)
        • FgColorIn
          • Input foreground color, as above
        • BgColorOut
          • Output background color, as above
        • FgColorOut
          • Output foreground color, as above
        • Macro=name freeform string of Ublu commands
          • Sets macro name to freeform string of Ublu commands
  • Assumes in absence of property set as above that Ublu is found in /opt/ublu/ublu.jar

Example setup

In .bash_aliases (or .bashrc or whatever):

alias gu='/home/jax/gopath/src/github.com/jwoehr/goublu/main/goublu -g PropsFile=/home/jax/.config/ublu/goublu.properties $*'

In the PropsFile:

#BgColorOut=ColorBlack
FgColorOut=ColorRed
UbluDir=/opt/ublu
SaveOutDir=.
JavaOpt=-Djavax.net.ssl.trustStore=/opt/ublu/keystore/ublutruststore
JavaOpt=-Dublu.includepath=/opt/ublu/examples:/opt/ublu/extensions
JavaOpt=-Dublu.usage.linelength=100
Macro=sys1 as400 -to @sys1 SYS1.FOO.COM myusrprf
Macro=in include
Macro=jl joblist -as400
Macro=db db -to @myDb -dbtype as400 -connect
Macro=ublutest /QSYS.LIB/UBLUTEST.LIB/
Macro=spfl spoolflist -as400
Macro=ul userlist -as400
Macro=ref desktop -browse file:///opt/ublu/userdoc/ubluref.html#

Working in Goublu

  • Basic line editing
    • Ctl-a move to head of line
    • Ctl-b move one back.
    • Ctl-e move to end of line.
    • Ctl-d delete to end of current word.
    • Ctl-f move one ahead.
    • Ctl-k delete to end of line.
      • This doesn't work entirely right if line is longer than view width.
    • Alt-b back a word.
    • Alt-f forward a word.
    • These work as you would expect:
      • Home
      • End
      • Backspace
      • Left-arrow
      • Right-arrow
      • Insert
      • Delete
  • History
    • Up-arrow previous command
    • Down-arrow next command
    • PgUp first command
    • PgDn last command
  • F1 shows Goublu help.
  • F2 shows entire session's output
  • F3 offers a quick exit for when Ublu gets caught in a loop or network timeout
  • F4 saves the entire session's output to a file SaveOutDir/goublu.out.xxx...
    • SaveOutDir set above as Goublu property, default is /tmp
    • Output announces the save file name
    • You can do this as many times as you like during a session, a new file is created each time.
  • F5 expands last element on command line as macro you set in the properties file.
    • On empty line, F5 lists Goublu version, compile date, and all Goublu options and macros.
  • F9 rotates through previous commands wrapping.
  • Ctrl-Space at the end of a partial command name rotates through completions, if any.

Notes

  • The Ublu prompt appears on a line by itself in Goublu.
  • Goublu "history" is input line recall and is separate from Ublu's own history command.
  • Any Ublu application program output should include a newline as the Goublu output mechanism requires it.
  • This document as displayed on the project page always reflects the current state of the tree and may be in advance of the release version.

Bugs

  • Serious
    • Ublu prompts for a password when an AS400 object is created with an invalid password and does not echo. However, Goublu will indeed echo the password even though Ublu's password prompt says the password will not be echoed.
  • Trivial
    • Command lines longer that the view width of the input line behave erratically in response to edit commands.
    • On Mac OS X in Terminal, mouse actions fill the input line with escape sequences and do not otherwise work.

The default branch has been renamed!

master is now named main

If you have a local clone, you can update it by running:

git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a

Jack Woehr 2022-02-02

Documentation

Overview

Package goublu AllOutReq is the F2 Show All Output requestor

Package goublu Args manages the os-passed-in args between goublu itself and Ublu.

Package goublu Completion does partial completion

Package goublu Dialog contains any user response dialogs for Goublu.

GoUblu github.com/jwoehr/goublu goublu launches and serves as a better-than-Java console for https://github.com/jwoehr/ublu Ublu, a Java-coded domain-specific language for remote programming of IBM midrange and mainframe systems. Neither this project nor Ublu are associated with IBM.

Package goublu HelpReq is the F1 Help requestor.

Package goublu History provides command line history in the goublu Ublu input area.

Package goublu MacroExpander does expansion of macros.

Package goublu Options parses and stores user options for Goublu.

Package goublu ReqManager is the gocui manager for requestors.

Package goublu Ublu is the struct managing execution of the Java program Ublu.

Package goublu UbluManager is the gocui manager for Ublu input and output.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL