Re: zip mystery

2017-07-17 Thread ToddAndMargo

-Original Message-
From: ToddAndMargo [mailto:toddandma...@zoho.com]
Sent: Monday, July 17, 2017 8:29 PM
To: perl6-users <perl6-users@perl.org>
Subject: Re: zip mystery


-Original Message-
From: ToddAndMargo [mailto:toddandma...@zoho.com]
Sent: Monday, July 17, 2017 8:19 PM
To: perl6-users <perl6-users@perl.org>
Subject: zip mystery

Hi All,

This runs:

my $proc = run('zip', '-j', "$ZipLog", "$CimLog", "$LogFile",
"$DiagDir/BlankFile.txt", :out);


And this also works (bash)
zip -j eraseme.zip /opt/xxx/yyy/zzz/diags/*


But this does not:

my $proc = run('zip', '-j', "$ZipLog", "$CimLog", "$LogFile",
"$DiagDir/*", :out);

warning: name not matched: /opt/xxx/yyy/zzz/diags/*


What am I doing wrong?

Many thanks,
-T



On 07/17/2017 05:22 PM, Mark Devine wrote:

T,

What happens when you do this?

my $proc = run('zip', '-j', $ZipLog, $CimLog, $LogFile,  $DiagDir ~
'/*', :out);

Mark


with  $DiagDir ~ '/*'

warning: name not matched: /opt/Cimcor/CimTrak/CimTrakServer/diags/*




On 07/17/2017 05:33 PM, Mark Devine wrote:
> T,
>
> It appears to be a 'zip' error, not a Perl 6 issue.  Perhaps use 'zip 
-r' (explicit recursion) instead of '/*' (implicit "glob").

>
> Mark
>
>


Hi Mark,

-jr did the trick!

I had avoided trying it as I thought it would throw an error
as two of the requested entities were files and not
directories.  But the zip folks had already thought of
that and it worked perfectly.

Thank you!

-T

--
~~
Computers are like air conditioners.
They malfunction when you open windows
~~


Re: zip mystery

2017-07-17 Thread ToddAndMargo
On Mon, Jul 17, 2017 at 8:18 PM, ToddAndMargo > wrote:


But this does not:

my $proc = run('zip', '-j', "$ZipLog", "$CimLog", "$LogFile",
"$DiagDir/*", :out);

warning: name not matched: /opt/xxx/yyy/zzz/diags/*

What am I doing wrong?



On 07/17/2017 05:45 PM, Brandon Allbery wrote:


run() does not use a shell. The shell is what understands that * and 
expands it to a list of matching files. If you want that expansion, use 
shell() or use Perl 6 to get the directory contents separately and send 
it along as a list (see https://docs.perl6.org/type/IO::Path#routine_dir).


Now I understand.  Thank you!


Re: zip mystery

2017-07-17 Thread Brandon Allbery
On Mon, Jul 17, 2017 at 8:18 PM, ToddAndMargo  wrote:

> But this does not:
>
> my $proc = run('zip', '-j', "$ZipLog", "$CimLog", "$LogFile",
> "$DiagDir/*", :out);
>
> warning: name not matched: /opt/xxx/yyy/zzz/diags/*
>
> What am I doing wrong?
>

run() does not use a shell. The shell is what understands that * and
expands it to a list of matching files. If you want that expansion, use
shell() or use Perl 6 to get the directory contents separately and send it
along as a list (see https://docs.perl6.org/type/IO::Path#routine_dir).

-- 
brandon s allbery kf8nh   sine nomine associates
allber...@gmail.com  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonadhttp://sinenomine.net


Re: zip mystery

2017-07-17 Thread ToddAndMargo

-Original Message-
From: ToddAndMargo [mailto:toddandma...@zoho.com]
Sent: Monday, July 17, 2017 8:19 PM
To: perl6-users <perl6-users@perl.org>
Subject: zip mystery

Hi All,

This runs:

my $proc = run('zip', '-j', "$ZipLog", "$CimLog", "$LogFile", 
"$DiagDir/BlankFile.txt", :out);


And this also works (bash)
zip -j eraseme.zip /opt/xxx/yyy/zzz/diags/*


But this does not:

my $proc = run('zip', '-j', "$ZipLog", "$CimLog", "$LogFile",
"$DiagDir/*", :out);

warning: name not matched: /opt/xxx/yyy/zzz/diags/*


What am I doing wrong?

Many thanks,
-T



On 07/17/2017 05:22 PM, Mark Devine wrote:

T,

What happens when you do this?

my $proc = run('zip', '-j', $ZipLog, $CimLog, $LogFile,  $DiagDir ~ '/*', :out);

Mark


with  $DiagDir ~ '/*'

warning: name not matched: /opt/Cimcor/CimTrak/CimTrakServer/diags/*


zip mystery

2017-07-17 Thread ToddAndMargo

Hi All,

This runs:

my $proc = run('zip', '-j', "$ZipLog", "$CimLog", "$LogFile", 
"$DiagDir/BlankFile.txt", :out);



And this also works (bash)
zip -j eraseme.zip /opt/xxx/yyy/zzz/diags/*


But this does not:

my $proc = run('zip', '-j', "$ZipLog", "$CimLog", "$LogFile", 
"$DiagDir/*", :out);


warning: name not matched: /opt/xxx/yyy/zzz/diags/*


What am I doing wrong?

Many thanks,
-T