On Tue, 11 Dec 2012 13:58:41 +0100, Marc Simpson <[email protected]> wrote:

Thanks Joerg,

I've just pushed a fix -- can you try it out and let me know whether it
resolves the issue


yes it does. thanks.

j.




Best,
Marc

On Tue, Dec 11, 2012 at 5:51 PM, j. v. d. hoff <[email protected]>wrote:

thanks for this script which looks promising.
first bug report: I see interference with the `nano' editor (which is set as my 'checkin editor' due to its low latency): `nano' is keyboard driven
and uses the command `^X' (CNTRL-X) for "save and exit". when using `fsl
ci' the editor opens all right and I can enter the commit message. CNTRL-X
however is not recognized as a command any more but rather is taken as
verbatim input: no way to leave the editor except killing the window. this
does happen only when issuing `fsl ci'
`fossil ci' behaves as expected.

regards,
joerg



On Tue, 11 Dec 2012 11:46:37 +0100, Marc Simpson <[email protected]> wrote:

 Hi all,

I've recently written a simple wrapper for Fossil with the goal of
providing an improved CLI experience and thought others might find it
useful.

The script is written in Tcl/Expect and provides the following features:

   * Command aliasing
   * Output filtering
   * A number of preconfigured aliases, filters for colouring output

Though still inchoate, you should be able to use it as you would
`fossil' on the command line.

If you're interested, feel free to clone from
http://fossil.0branch.com/fsl/**home <http://fossil.0branch.com/fsl/home>or download `fsl' directly:
http://fossil.0branch.com/fsl/**artifact/**f57c7ecf8c4db2a9990b40ee21e763
**7a1374f45e<http://fossil.0branch.com/fsl/artifact/f57c7ecf8c4db2a9990b40ee21e7637a1374f45e>
.
The code is ISC licensed (likely overkill for such a simple script).

# Details

Out of the box, a number of filters and aliases are defined in
~/.fslrc (created on first run):

   * Aliases ('->' indicates the expansion)
      * '.'     -> 'changes'
      * 'd'     -> 'diff'
      * ','     -> 'ui'
      * 'log'   -> 'timeline'
      * 'heads' -> 'leaves'

   * Filters (all of which colour output)
      * 'diff'
         * 'fsl d'
      * 'log_entry'
         * 'fsl leaves', 'fsl timeline'
      * 'status'
         * 'fsl changes', 'fsl status', 'fsl timeline', 'fsl add',
           'fsl rm', 'fsl addremove'

You can see a summary of these definitions using the `fsl wrapper'
pseudo-command:

  $ fsl wrapper
  Aliases: . d , log heads
  Filters: changes status timeline add rm addremove leaves d

The configuration file is a Tcl script: you can define `proc's (for
helper functions) and employ them in your filters. Definitions will
end up in the `config::fslrc' namespace so you needn't worry about
clobbering predefined functions. Since the script makes heavy use of
dictionaries, it requires Tcl >= 8.5.

Alias declarations are trivial; their second argument can be a
bareword or quoted string, thereby allowing expansions to provide
switches if required, e.g.

  alias log      timeline
  alias history {timeline -n 100}

Filters are named, allowing them to be referenced elsewhere in your
configuration script. Their structure is:

  filter <internal name> <list of commands to filter> <body>

If you filter on a fossil command like `diff', aliases of this command
(by default, `d') will also be filtered. Conversely, filtering on an
alias (`d'), leaves its expansion (`diff') untouched. Also note that
more than one filter may apply to a given command: under the default
configuration, the timeline will be filtered by both `status' and
`log_entry'.

A filter body can reference the current output line via the implicitly
defined $line variable. By way of example, here's the `log_entry'
filter:

  filter log_entry {leaves timeline} {
      if {[regexp "^=== .* ===" $line]} {
          coloured blue $line
      } else {
          regsub -all {\[[A-Fa-f0-9]+\]} $line [coloured yellow &]
      }
  }

Useful functions defined by the script are:

   * `coloured' (for colouring output)
   * `alias?'
   * `filter?'
   * `empty?' and `prefix?' (simple utility functions)

Patches, criticisms, suggestions etc. are welcome.

Best,
Marc



--
Using Opera's revolutionary email client: http://www.opera.com/mail/
______________________________**_________________
fossil-users mailing list
[email protected].**org <[email protected]>
http://lists.fossil-scm.org:**8080/cgi-bin/mailman/listinfo/**fossil-users<http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users>



--
Using Opera's revolutionary email client: http://www.opera.com/mail/
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to