|
Posted by Brian V Bonini on 06/29/05 01:06
On Mon, 2005-06-27 at 22:04, Bob Winter wrote:
> Brian,
>
> Can you post more of the script?
Sure. I also tried {{$files}} and tried calling a shell exclusively like:
sh -s 'scp $user@etc...'
Anyway, here's more for the code surrounding the area in question, it's a little hacked up ATM
but your get the picture. I can send the whole file to you if you think it will help. I basically
just want to be able to do '$ command {file,file1,file2}' from within a php cli script but the {} are
not expanding.
} else {
if($argv[1] == $switches[0]) {
print("Do you want to push live from dev[d] or staging[s]?: ");
$confirm = read_input();
if(!$confirm) {
echo "You did not select a choice, exiting program\n";
exit;
}
if ($confirm == "s") {
if(!(mkdir($tmp_dir, 0777))) {
echo "Error: can not make temp dir for files. Please log into staging and push manually";
exit;
}
}
$live_servers = array("a", "b", "c");
print("Which live servers (a=[all] b=[1-5] c=[6-13]): ");
$which_servers = read_input();
if(!in_array($which_servers, $live_servers)) {
echo "You must choose which live servers\n";
$err = true;
exit;
} else {
switch($which_servers) {
case $live_servers[0]:
$i = 1;
$j = 13;
break;
case $live_servers[1]:
$i = 1;
$j = 5;
break;
case $live_servers[2]:
$i = 6;
$j = 13;
break;
default:
echo "An unrecoverable error has occured\n";
$err = true;
exit;
}
$ii = $i; // store this so we can reset $i on each outer foreach
foreach($files as $directory => $file_array) {
$files = implode(",", $file_array);
if($confirm == "s") { //if staging suck the files down to temp local dir first
$cmd = "scp $user@stagingcws.$tld:$directory/{{$files}} $tmp_dir/.";
echo $cmd . "\n\n";
exec($cmd, $output, $err);
//shell_exec($cmd);
}
while (!$err && $i <= $j) {
($i < 10) ? $cname = "cwsweb0" : $cname = "cwsweb";
$cmd = "scp $tmp_dir/" . '{' . $files . '}' . "$user@$cname$i.$tld:$directory/.";
//echo $cmd . "\n";
//exec($cmd, $output, $err);
$i++;
}
$i = $ii; // reset $i to original value so loop continues
}
if(file_exists($tmp_dir)) rmdir($tmp_dir); // remove the temp dir
$err= true;
}
}
>
> --Bob
>
> Brian V Bonini wrote:
> > On Mon, 27 Jun 2005, [ISO-8859-1] Andr? Medeiros wrote:
> >
> >
> >>$cmd = 'scp ' . $user . '@stagingcws.' . $tld . ':' . $directory/{' .
> >>$files . '} ' . $tmp_dir . '/';
> >>
> >>That should work
> >>
> >>On 6/27/05, b-bonini@cox.net <b-bonini@cox.net> wrote:
> >>
> >>>Can not make this work inside a php script.
> >>>
> >>>Have tried several variations:
> >>>$cmd = "scp $user@stagingcws.$tld:$directory/\{$files} $tmp_dir/.";
> >>>
> >>>$cmd = "scp $user@stagingcws.$tld:$directory/" . '{' . $files . '} ' . "$tmp_dir/.";
> >>>
> >>>etc...
> >>>
> >>>I can echo out the command and get a well formed command, i.e. one that will execute from a command prompt, but when I try to exec() $cmd from within the script the globbing is taken literally.
> >>>
> >
> >
> > No, I already tried it that way too. I guess I should mention this is a
> > cli script if that matters.
--
s/:-[(/]/:-)/g
Brian GnuPG -> KeyID: 0x04A4F0DC | Key Server: pgp.mit.edu
======================================================================
gpg --keyserver pgp.mit.edu --recv-keys 04A4F0DC
Key Info: http://gfx-design.com/keys
Linux Registered User #339825 at http://counter.li.org
[Back to original message]
|