ph

 view release on metacpan or  search on metacpan

script/ph  view on Meta::CPAN

    }
}

sub CMD_import {
    my $remote = 'origin';
    my $homepage = '';
    my $description = '';
    my $private = 0;
    GetOptions(
        'remote=s'      => \$remote,
        'homepage=s'    => \$homepage,
        'description=s' => \$description,
        'private'       => \$private,
    );
    if (`git config --local --get remote.$remote.fetch`) {
        Carp::croak "Remote [$remote] already exists. Try specifying another one using --remote.";
    }

    my $pwd = Cwd::getcwd();
    my $name = File::Basename::basename($pwd);
    exit unless prompt("Can I import $pwd to $name in github? [y/N] ", -yes);
    my $res = $pithub->repos->create(
        data => {
            name        => $name,
            homepage    => $homepage,
            description => $description,
            public      => $private ? 0 : 1,
        }
    );
    $res->success or die dump_content($res->content);
    dump_content($res->content);
    my $ssh_url = $res->content->{ssh_url} // die "Missing ssh_url";

    print "Adding GitHub repo $name as remote [$remote].\n";
    system(qw(git remote add), $remote, $ssh_url);

    if (!`git config --get branch.master.remote`) {
        print "Setting up remote [$remote] for master branch.\n";
        system(qw(git config branch.master.remote), $remote);
        system(qw(git config branch.master.merge refs/heads/master));
        my $rebase = `git config --get branch.autosetuprebase`;
        chomp $rebase;
        if ($rebase && ($rebase eq 'remote' || $rebase eq 'always')) {
            system(qw(git config branch.master.rebase true));
        }
    }

    print "Pushing to remote [$remote]\n";
    system(qw(git push), $remote, qw(master));
    print "Done.\n";
}

# ------------------------------------------------------------------------- 

sub _get_user_repo_simple() {
    my ($repo, $user);
    if (@ARGV==2) {
        ($user, $repo) = @ARGV;
    } elsif (@ARGV==1) {
        if ($ARGV[0] =~ m{/}) {
            ($user, $repo) = split m{/}, $ARGV[0];
        }
        else {
            ($user, $repo) = ($me, $ARGV[0]);
        }
    }
    return ($user, $repo);
}

sub _get_user_repo {
    my ($cmd) = @_;
    my ($user, $repo) = _get_user_repo_simple();
    $user // die "Usage: $0 $cmd miyagawa/Plack\n";
    return ($user, $repo);
}

sub _get_user_repo_with_current_repo {
    my ($cmd) = @_;
    my ($user, $repo) = _get_user_repo_simple();
    unless ($user && $repo) {
        my $remote = `git remote -v`;
        if ($remote =~ m{git://github\.com\/([^/ ]+)\/([^/ ]+)\.git}) {
            ($user, $repo) = ($1, $2);
        } elsif ($remote =~ m{git\@github\.com:([^/]+)/([^/]+)\.git}) {
            ($user, $repo) = ($1, $2);
        } else {
            die "Usage: $0 $cmd plack/Plack\n";
        }
    }
    return ($user, $repo);
}

our $DUMP_DEPTH = 0;
sub dump_content {
    local $DUMP_DEPTH = 0;
    my $c = shift;
    _dump_content($c);
}
sub _dump_content {
    my $c = shift;
    if (ref $c eq 'HASH') {
        for my $key (sort keys %$c) {
            print(' ' x ($DUMP_DEPTH*2));
            print($key . ': ');
            if (ref $c->{$key} eq 'HASH') {
                print("\n");
                local $DUMP_DEPTH = $DUMP_DEPTH + 1;
                _dump_content($c->{$key});
            } else {
                print("$c->{$key}");
                print("\n");
            }
        }
    }
}

# ------------------------------------------------------------------------- 

sub save_auth_result {
    my $res = shift;



( run in 1.290 second using v1.01-cache-2.11-cpan-71847e10f99 )