Deutsch   English   Français   Italiano  
<vom4v7$35a76$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: =?UTF-8?Q?Arne_Vajh=C3=B8j?= <arne@vajhoej.dk>
Newsgroups: comp.os.vms
Subject: Re: Local Versus Global Command Options
Date: Thu, 13 Feb 2025 20:06:47 -0500
Organization: A noiseless patient Spider
Lines: 84
Message-ID: <vom4v7$35a76$1@dont-email.me>
References: <volt3s$33lo1$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 14 Feb 2025 02:06:47 +0100 (CET)
Injection-Info: dont-email.me; posting-host="dda924e61af71f9313ea4b7dafa3f395";
	logging-data="3320038"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+jtnRgmBc2q2PDtU6RoJiUhOaYUciqCXg="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:dH2AccBe8Cb1NqFecAcPsEvBkbs=
Content-Language: en-US
In-Reply-To: <volt3s$33lo1$1@dont-email.me>
Bytes: 3396

On 2/13/2025 5:52 PM, Lawrence D'Oliveiro wrote:
> What would DCL-style syntax for ffmpeg look like? I suppose one
> obvious equivalence would be
> 
>      ffmpeg -
>          «infile-1»/«local-input-options-1»,«infile-2»/«local-input-options-2»,... -
>          «outfile-1»/«local-output-options-1»,«outfile-2»/«local-output-options-2»,... -
> 
> (being very careful about where the commas go), but what about the
> syntax for filtergraphs? Would it be something like
> 
>      /vf=(«filter-name-1»=«filter-params-1»,«filter-name-2»=«filter-params-2»...)
> 
> Does DCL have provision for this sort of complexity?

You can do quite a bit with CDU, CLD and CLI$:

$ type fun.cld
define verb fun
     image "sys$disk:[]fun"
     parameter p1, value(type=$file)
     parameter p2, value(type=$file)
     parameter p3, value(type=$file)
     parameter p4, value(type=$file)
     parameter p5, value(type=$file)
     parameter p6, value(type=$file)
     parameter p7, value(type=$file)
     parameter p8, value(type=$file)
qualifier q1, placement=local
qualifier q2, value(type=a_and_b, list, required), placement=local
define type a_and_b
     keyword a, value(type=$number, required)
     keyword b, value(type=$number, required)
$ type fun.pas
[inherit('sys$library:pascal$cli_routines')]
program fun(input,output);

type
    pstr = varying [255] of char;

procedure check(pn : pstr);

var
    fnm, a, b : pstr;

begin
    if odd(cli$present(pn)) then begin
       cli$get_value(pn, fnm.body, fnm.length);
       write(pn, '=', fnm);
       if odd(cli$present('Q1')) then begin
          write(' Q1=present')
       end else begin
          write(' Q1=notpresent')
       end;
       if odd(cli$present('Q2')) then begin
          cli$get_value('Q2.A', a.body, a.length);
          write(' A=', a);
          cli$get_value('Q2.B', b.body, b.length);
          write(' B=', b);
       end;
       writeln;
    end;
end;

begin
    check('P1');
    check('P2');
    check('P3');
    check('P4');
    check('P5');
    check('P6');
    check('P7');
    check('P8');
end.
$ pas fun
$ lin fun
$ set comm fun
$ fun x.dat /q2=(a:1,b:2) y.dat /q1 /q2=(a:3,b:4) z.dat /q2=(a:5,b:6)
P1=x.dat Q1=notpresent A=1 B=2
P2=y.dat Q1=present A=3 B=4
P3=z.dat Q1=notpresent A=5 B=6

Arne