Nice idea, Michael.  It’s possible to prepend text only if some command has 
output.  E.g.:

---- git-status-prepend: https://gist.github.com/2264a228ea64e4313d11
#!/bin/sh

git -c color.status=always status -s | sed "1s/^/$*\\
/"
----

This would be used as:

git-status-prepend “mr status: /path/to/repo”

The command only outputs the “mr status…” line if the preceding `git status` 
command has output.

The sed approach should be suitable for use in both `mr status` and `vcsh 
status`, if folks thought that was desirable.  (I certainly do!)

FWIW, I’ve tested the above approach with both BSD and GNU sed and it works 
fine.  It’s very basic “core” sed, and so avoids any differences in those 
lineages.  Looks like sed is already used in vcsh, so this wouldn’t add a new 
dependency.
 
— John


On Wed, Jun 24, 2015, at 06:07 PM, Michael Henry wrote:
> All,
> 
> I've been using ``mr`` to track my various projects in git,
> along with my home directory.  I really like how it allows me to
> organize and track my work.  For some time, I've been using a
> home-grown utility to quiet down the output from ``mr status``.
> In this way, I can run ``mr status`` from my home directory and
> check the status of all 130+ repositories at once without having
> to scroll back through twice that many lines of text looking for
> something interesting.
> 
> The output from ``mr status`` by default looks something like
> the following::
> 
>  mr status: /home/mike/.
> 
>  mr status: /home/mike/.vim
>   M vimrc
> 
>  mr status: /home/mike/projects/ProjectOne
> 
>  mr status: /home/mike/projects/ProjectTwo
> 
>  [...]
> 
>  mr status: /home/mike/projects/ProjectN
> 
> I could grep away the blank lines and the ``mr status:...``
> lines, but this makes it difficult in general to tell which
> repository contains the changes.  I prefer to keep the ``mr
> status:...`` lines for repositories with changes, but squelch
> them otherwise.  In the above example, my preferred output
> would be:
> 
>  mr status: /home/mike/.vim
>   M vimrc
> 
> In case someone else might find it useful, I've published this
> Python-based utility (which I've named ``ptee`` for "Progress
> Tee") on the Python Package Index.  I alias ``mr`` to point to
> the below script (which I call ``mrwrap``) so that I can execute
> ``mr status`` and get the quiet output I prefer.
> 
> To try this out::
> 
>  pip install ptee
>  alias mr='mrwrap'
> 
> Then save the text between the ``---cut`` lines as ``mrwrap``
> and make it executable.  The ``ptee`` utility can be found here
> for manual downloading:
> https://pypi.python.org/pypi?name=ptee&version=0.2.0&:action=display
> 
> ---cut mrwrap---
> #!/bin/bash
> 
> mrtee()
> {
>    ptee \
>        --regex '^mr (status|update|push): /' \
>        --regex '^(Everything|Already) up-to-date' \
>        --regex '^\s*$' \
>        --heading-regex '^mr \S+: finished '
> }
> 
> mr "$@" 2>&1 | mrtee
> ---cut mrwrap---
> 
> Michael Henry
> 
> _______________________________________________
> vcs-home mailing list
> vcs-home@lists.madduck.net
> http://lists.madduck.net/listinfo/vcs-home
_______________________________________________
vcs-home mailing list
vcs-home@lists.madduck.net
http://lists.madduck.net/listinfo/vcs-home

Reply via email to