Akavel Up Versions Save

Ultimate Plumber is a tool for writing Linux pipes with instant live preview

v0.4

3 years ago
  • 9ddc78b upgrade version to 0.4
  • b20471c deps: upgrade tcell (#45)
  • 94ad570 add --noinput flag (#50, #33)
  • 3e81993 add usage info with --help flag (#35)
  • 8aa1f8f add --buf flag for specifying buffer size
  • 3a63622 add -c flag for initial pipeline command (#11)
  • 5dc341c add -e multi-flag for custom shell

New flags:

      --buf megabytes          input buffer size & pipeline buffer sizes in megabytes (MiB) (default 40)
  -e, --exec command           command to run pipeline with; repeat multiple times to pass multi-word command; defaults to '-e=$SHELL -e=-c'
      --noinput                start with empty buffer regardless if any input was provided
  -c, --pipeline commands      initial commands to use as pipeline (default empty)

v0.3.2

5 years ago

Add the following shortcuts (see #28):

  • Ctrl-A / Ctrl-E — Go to beginning/end of command.
  • Ctrl-B / Ctrl-F — Move backward/forward by one character (same as Left/Right).
  • Ctrl-K / Ctrl-Y — Kill from cursor to EOL. / Yank (paste) last kill at cursor.

Those features were contributed by @cmacrae — thanks! :heart:

v0.3.1

5 years ago

This version adds a detailed error message, suggesting steps that can be performed to mitigate the problem, in case user's $TERM environment variable is not recognized (#15).

v0.3

5 years ago

This release by default loads user's login shell, as specified in the SHELL environment variable (instead of always using bash, as was done previously). This feature can also be used to change the shell/engine used by up, by changing the contents of the SHELL variable. To be compatible with up, a shell must support two ways of being called:

  • $SHELL -c "$COMMAND" — this is used by up when evaluating the command entered by user,
  • $SHELL $FILENAME — this is used in upN.sh scripts saved after exiting up.

If a shell/engine you want to use with up doesn't support such ways of being called, you can create a wrapper script to translate those into options appropriate for your shell. This can be used to make up work with engines such as lua or ghci.

To change a shell used by up, change the value of the SHELL environment variable. For example, in bash, you could try:

lshw |& SHELL=python up

v0.2.1

5 years ago

The behavior of Ctrl-S/Ctrl-Q was broken after adding the "Enter to run" feature. This release fixes it to work correctly again.

v0.2

5 years ago

The main feature of the new version, based on a lot of feedback and numerous ideas, is a change of the default mode: you must now Press Enter to execute the pipeline built in up. This is a safety measure and fixes #8. The old behavior is still available, but must be enabled with a command-line flag --unsafe-full-throttle. This may however get removed in future — the Enter mode seems to be working well enough. If you are really using this mode, please let me know by opening an issue or sending an email/keybase message, so that I will try to keep it. Also if you are interested in adding a feature to dynamically switch the modes (I'm not so sure now if I see a need to add it anymore).

This release also comes with binaries for more OSes, but please note that Linux is my main focus point, and I don't have means to test other platforms, so they're (even more than Linux) experimental, and may need help from interested contributors (read: you) for maintenance. If you would like me to add a binary for some other OS supported by Go, please let me know. I can send you a binary for testing first if you don't want to compile by yourself.

Full list of changes

  • [Fix #8] Execute the pipeline only when Enter is pressed.
  • Add option -o $FILE to allow saving the script to custom file. This may be useful especially to zsh users for some magic tricks (thanks u/attrigh for the idea!)
  • Improve saving of the pipeline. When quitting with Ctrl-C, the pipeline is now printed to stderr. When exiting with Ctrl-X, if file fails to save (e.g. in readonly directory), an attempt is made to save the script in /tmp. If it fails too, the pipeline is printed to stderr.

v0.1

5 years ago