The Document of Aska

バッチ

たかがバッチ、されどバッチ

サンプル

Hamburger->new; すると環境変数に応じた設定の読み込みなど反映されるのがポイント、あとControllerと一緒。

#!perl

# bin/setup_member.pl -l dummy -p password

use strict;
use warnings;
use feature qw/say/;
use File::Spec;
use File::Basename;
use lib File::Spec->catdir( dirname(__FILE__), '../lib' );

use Hamburger;
use Hamburger::Types;

package Hamburger::Script::SetupMember;
use Mouse;

with 'MouseX::Getopt';

has 'login_id' => (
    traits => ['Getopt'],
    is => 'rw',
    isa => 'Hamburger::Type::LoginID',
    required => 1,
    cmd_aliases => 'l',
    documentation => 'login_id or l',
);

has 'password' => (
    traits => ['Getopt'],
    is => 'rw',
    isa => 'Hamburger::Type::Password',
    required => 1,
    cmd_aliases => 'p',
    documentation => 'password or l',
);

__PACKAGE__->meta->make_immutable;

no Mouse;

package main;
my $app = Hamburger::Script::SetupMember->new_with_options();

my $webapp = Hamburger->new;
my $container = $webapp->container;

my $csh = $container->get('CYPHER');
$csh->add($app->password);
my $password_hash = $csh->generate;

my $dbh = $container->get('DBH');
my $member = $dbh->insert('member', { login_id => $app->login_id, password => $password_hash });

say 'new member id: ', $member->id;