On Fri, 22 Nov 2013 12:15:21 +0000
Sharon Kimble <boudiccas@talktalk.net> wrote:
> On Fri, 22 Nov 2013 09:09:23 +1100
> Scott Ferguson <scott.ferguson.debian.user@gmail.com> wrote:
>
> > On 22/11/13 08:50, Scott Ferguson wrote:
> > > On 22/11/13 06:39, Scott Ferguson wrote:
> > <snipped>
> > >
> > > Try #2 :/
> >
> > Try #3 (no sleep last night - trees and power lines down across the
> > property in last nights storms) Sorry.
> > This time I remembered to escape those brackets. Please test this -
> > I can only check the script works, can't check if mmaker likes it.
> >
> > >
> > > Ignore the above - that echo won't reliably create multiple lines,
> > > printf will.
> > >
> > > Try this which will:-
> >
> > echo "
> > #!/bin/bash
> > # .fmenu
> > mv ~/.fluxbox/menu{,-$(date +%Y%m%d-%R)}
> > mmaker fluxbox -f
> > printf "\t[submenu] \(My
> > Menu\)\n\t[include]\(~/.fluxbox/usermenu\)\n\t[end]\n\t[separator]"
> > >> ~/.fluxbox/menu" > ~/.fmenu
> >
> > >
> > >
> > > The above will:-
> > > create a script ~./.fmenu
> > >
> > > Running ~/.fmenu will:-
> > > mv your existing ~/.fluxbox/menu to ~/.fluxbox/menu-YYYYmmdd-hh:mm
> > > create a new ~/.fluxbox/menu
> > > append your submenu to it
> > >
> > >
> > > If you want to remove the last [end] tag from the main menu (as
> > > suggested by Linux Fan try this:-
> >
> > echo "
> > #!/bin/bash
> > # .fmenu
> > mv ~/.fluxbox/menu{,-$(date +%Y%m%d-%R)}
> > mmaker fluxbox -f
> > sed -i 's/\[end]//g' ~/.fluxbox/menu;sed -i '/^\s*$/d'
> > ~/.fluxbox/menu printf "\t[submenu] \(My
> > Menu\)\n\t[include]\(~/.fluxbox/usermenu\)\n\t[end]\n\t[separator]"
> > >> ~/.fluxbox/menu" > ~/.fmenu
> >
> >
> >
> > Someone more awake than I can probably make that double invocation
> > of sed into a single call.
> >
> Morning Scott.
> Thanks for this, I hope you slept better? This is what I currently
> have -
>
> #!/bin/bash
> # .fmenu
> mv ~/.fluxbox/menu{,-$(date +%Y%m%d-%R)}
>
> mmaker fluxbox -f
>
> sed -i 's/\[end]//g' ~/.fluxbox/menu;sed -i '/^\s*$/d' ~/.fluxbox/menu
>
> printf '\t[submenu] \(My
> Menu\)\n\t[include]\(~/.fluxbox/usermenu\)\n\t[end]\n\t[separator]'
> >>~/.fluxbox/menu" >~/.fmenu
>
> and the double sed line works okay, but its failing at the 'printf'
> line saying -
> 'tryitout
> /home/boudiccas/bin/tryitout: line 21: /home/boudiccas/.fluxbox/menu
>
> >~/.fmenu'
>
> NB - my working script is always called 'tryitout', just whilst I'm
> developing something.
>
> The new menu is created without the two [end] at its end, but there is
> nothing from 'printf' at all.
>
> Sorry
> Sharon.
>
I've got it working with this line -
mv ~/.fluxbox/menu{,-$(date +%Y%m%d-%R)}; mmaker fluxbox -f;perl -0777
-pi -e 's/(.*)\[end]/$1/s;s/(.*)\[end]/$1/s;s/^\s*\n//gm'
~/.fluxbox/menu;printf '\t[end]\n\t[separator]\n\t[submenu] (My
Menu)\n\t[include] (~/.fluxbox/usermenu)\n\t[end]\n\t[end]'
>>~/.fluxbox/menu
Thanks for all those who offered solutions.
Sharon.
Attachment:
signature.asc
Description: PGP signature