Thread Ordnung auf der Kommandozeile (21 answers)
Opened by rosti at 2014-09-18 08:44

renee
 2014-09-18 15:20
#177367 #177367
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dein Beispiel mal mit App::Cmd (so ungefähr):

cli.pl:
Code (perl): (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl

use strict;
use warnings;

use MY::CLI;
MY::CLI->run;


MY/CLI.pm:
Code (perl): (dl )
1
2
3
4
package MY::CLI;
use App::Cmd::Setup -app;

1;


MY/CLI/Command/Date.pm:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package MY::CLI::Command::Date;

use strict;
use warnings;

use MY::CLI -command;
use Time::Piece;

sub abstract {
    return "Give information about a date";
}

sub usage_desc {
    return "cli.pl Date --date <date>";
}

sub opt_spec {
    return (
        [ 'date=s', 'A date you want information about' ],
    );
}

sub validate_args {}

sub execute {
    my ($self, $opt, $args) = @_;

    if ( !$opt->{date} ) {
        print $self->usage->text;
        return;
    }

    my $time = Time::Piece->strptime( $opt->{date}, '%Y-%m-%d' );
    print sprintf "Datum: %s
KW: %s
Schaltjahr: %s\n", $time->dmy('.'), $time->week, $time->is_leap_year;
}

1;
Das mit dem Template ließe sich auch noch recht fix einbauen...

Die Aufrufe sehen dann so aus

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ perl cli.pl
Available commands:

commands: list the application's commands
help: display a command's help screen

date: Give information about a date

$ perl cli.pl date
cli.pl Date --date <date>
--date A date you want information about
$ perl cli.pl date --date 2012-09-18
Datum: 18.09.2012
KW: 38
Schaltjahr: 1
$ perl cli.pl date --date 2014-09-18
Datum: 18.09.2014
KW: 38
Schaltjahr: 0


modedit Editiert von GwenDragon: Code/Perl-Tags repariert
Last edited: 2014-09-18 15:23:14 +0200 (CEST)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Ordnung auf der Kommandozeile