[mythtv] Ticket #7010: ./cpsvndir causes errors with checkinstall for themes
David Engel
david at istwok.net
Tue Sep 8 05:07:57 UTC 2009
On Mon, Sep 07, 2009 at 09:24:52PM -0400, Michael T. Dean wrote:
> On 09/07/2009 08:43 PM, MythTV wrote:
> > What /bin/sh are you using?
>
> David, this is just a guess (as I don't use *buntu nor dash), but
> I'm pretty certain Ubuntu is using dash as its default shell.
>
> I'm also pretty certain that the problem is all the bashisms in the
> current script.
>
> the
>
> IFS=$'\012'
>
> is a bashism, that should be
>
> IFS='
> '
>
> (where you put a single newline between the ticks) as long as we
> have #!/bin/sh at the top of the file.
It looks like dash, at least the Debian/sid version I have accepts
either format.
> Also, $(<command>) is a bashism that should be, i.e.:
>
> for directory in `find "$1" -path '*/.svn' -prune -or -type d -print`; do
>
> (though I think that one works on dash).
I know $(command) is definitely standard POSIX. Furthermore, dash
accepts it so this isn't it.
> Unfortunately, I don't know how to do the bash regexp-type stuff:
>
> ${1##*/}
>
> without bash. I think these are causing some problems on dash.
That's standard POSIX, too. dash also accepts it.
> If you open up the file in a vim with a sh syntax file and
> highlighting enabled, you'll see all the bashism's (or, at least,
> non-standard sh syntax) marked in "error" color (red on mine).
The culprit is the ${var/#Pattern/Replacement} replacement. Unless
someone comes up with a better way, I'm inclined to implement the
nuclear option. That is to do a simple "cp -r" followed by a find to
delete any and all .svn directories under the destination.
Actually, I think I might have a better way, but I'm not going to work
on it anymore until tomorrow.
David
--
David Engel
david at istwok.net
More information about the mythtv-dev
mailing list