Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 May 2012 18:29:18 +0100
From:      Chris Rees <crees@freebsd.org>
To:        =?ISO-8859-1?Q?Fernando_Apestegu=EDa?= <fernando.apesteguia@gmail.com>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: On file installation
Message-ID:  <CADLo83-1dys7ST0gk8Z0c5fj7QSxWAO94H%2BiBFtptx%2B5g1Z0VQ@mail.gmail.com>
In-Reply-To: <CAGwOe2Y2zPAdpsWesJ5ZDU4XOP1sjx9iQBVtCuFR0nzjHyWvVQ@mail.gmail.com>
References:  <CAGwOe2YwpBw_i6O6Q1qa9fn=W-qtJBiY0JkKaSQKbuJR=Q-_ew@mail.gmail.com> <CADLo83952A1O3ckX%2B9v7XOakd56S8ss9fU3zOar5h3o-JMvhSw@mail.gmail.com> <CAGwOe2ZrV=O_30N1%2BTRf7RyxqaR1F=dHeSY%2Be7n=DEGbFGWGcw@mail.gmail.com> <CAGwOe2Y2zPAdpsWesJ5ZDU4XOP1sjx9iQBVtCuFR0nzjHyWvVQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 15 May 2012 18:14, Fernando Apestegu=EDa <fernando.apesteguia@gmail.com>=
 wrote:
> On Mon, May 14, 2012 at 7:40 PM, Fernando Apestegu=EDa
> <fernando.apesteguia@gmail.com> wrote:
>> On Mon, May 14, 2012 at 7:31 PM, Chris Rees <crees@freebsd.org> wrote:
>>> On 14 May 2012 18:23, Fernando Apestegu=EDa <fernando.apesteguia@gmail.=
com> wrote:
>>>> Hi,
>>>>
>>>> I'm working on a port for an application written in Java and I'm
>>>> having some problems deciding how to install the application.
>>>> Previous to the installation, the WRKSRC directory contains some .jar
>>>> files and some directories along with some .txt files for
>>>> licenses, but also some .exe and .bat files _which I don't want to
>>>> install_. It is basically a package that contains both files for
>>>> windows and non-windows systems.
>>>>
>>>> I was thinking on using COPYTREE_SHARE to install everything and then
>>>> remove the non necessary files, but doesn't look like
>>>> an elegant solution. Also, I wouldn't like to explicitly specify every
>>>> one of the files I want to copy. Is there a way of using something
>>>> similar to bash's extglob so I can copy !(*.exe|*bat)? If not, how to =
proceed?
>>>>
>>>> I already looked at the existent ports to find something similar but
>>>> it seems hard to find. I also had a look at bsd.port.mk but
>>>> I couldn't find what I'm looking for.
>>>
>>> You can use find primaries with COPYTREE_SHARE such as;
>>>
>>> (cd ${WRKSRC}/wherever && ${COPYTREE_SHARE} \*
>>> ${JAVALIBDIR}/${PORTNAME}/wherever "-not -name \*.exe -and -not -name
>>> \*.bat"
>>
>> Thanks! I think that is what I was looking for :)
>
> Sorry guys, but I think I need more help :). I tried with the following l=
ine:
>
> ( cd ${WRKSRC}/JDownloader && ${COPYTREE_SHARE} \*
> ${PREFIX}/${PORTNAME}/ "! -name \*.exe" )
>
> but it doesn't seem to follow primaries and it still installs the .exe
> files. I just tried with:
>
> ( cd ${WRKSRC}/JDownloader && ${COPYTREE_SHARE} \*
> ${PREFIX}/${PORTNAME}/ "! -name JDownloader.exe" )
>
> and check that effectively the file is not installed so I suppose this
> has something to do with quoting and escaping special characters (the
> asterisk). I found the following line in audio/xmp/Makefile:
>
> ( cd ${WRKSRC}/docs && ${COPYTREE_SHARE} \* \
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0${DOCSDIR} '! ( -name Makefile -or -name x=
mp.1 \
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0-or -name *.bak -or -name *.orig )' )
>
> that seems pretty close to what I'm trying to do, so I tried with this:
>
> ( cd ${WRKSRC}/JDownloader && ${COPYTREE_SHARE} \*
> ${PREFIX}/${PORTNAME}/ '! ( -name *.exe )' )
>
> but then, the asterisk is expanded and find fails:
>
> find: JDownloader.exe: unknown primary or operator
>
> what am I doing wrong?

Escape the *;

(cd ${WRKSRC}/JDownloader && ${COPYTREE_SHARE} \* ${PREFIX}/${PORTNAME}/
 '! ( -name \*.exe )' )

Chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLo83-1dys7ST0gk8Z0c5fj7QSxWAO94H%2BiBFtptx%2B5g1Z0VQ>