Perl6-Pugs

 view release on metacpan or  search on metacpan

util/package-osx.pl  view on Meta::CPAN

        /usr/local/man/man3/Perl6::Perl5::Differences.3pm
        /usr/local/man/man3/Perl6::Perl5::Docfinder.3
        /usr/local/man/man3/Perl6::Perl5::Docfinder.3pm
        /usr/local/man/man3/Perl6::Pugs.3
        /usr/local/man/man3/Perl6::Pugs.3pm
        /usr/local/man/man3/Perl6::Spec.3
        /usr/local/man/man3/Perl6::Spec.3pm
        /usr/local/man/man3/Perl6::Spec::CPAN.3
        /usr/local/man/man3/Perl6::Spec::CPAN.3pm
        /usr/local/man/man3/Perl6::Spec::Concurrency.3
        /usr/local/man/man3/Perl6::Spec::Concurrency.3pm
        /usr/local/man/man3/Perl6::Spec::Documentation.3
        /usr/local/man/man3/Perl6::Spec::Documentation.3pm
        /usr/local/man/man3/Perl6::Spec::Functions.3
        /usr/local/man/man3/Perl6::Spec::Functions.3pm
        /usr/local/man/man3/Perl6::Spec::Block.3pm
        /usr/local/man/man3/Perl6::Spec::Module.3pm
        /usr/local/man/man3/Perl6::Spec::Object.3pm
        /usr/local/man/man3/Perl6::Spec::Operator.3pm
        /usr/local/man/man3/Perl6::Spec::Overload.3pm
        /usr/local/man/man3/Perl6::Spec::Overview.3pm
        /usr/local/man/man3/Perl6::Spec::Package.3pm
        /usr/local/man/man3/Perl6::Spec::Rule.3pm
        /usr/local/man/man3/Perl6::Spec::Structure.3pm
        /usr/local/man/man3/Perl6::Spec::Subroutine.3pm
        /usr/local/man/man3/Perl6::Spec::Syntax.3pm
        /usr/local/man/man3/Perl6::Tutorial.3
        /usr/local/man/man3/Perl6::Tutorial.3pm
        /usr/local/man/man3/Pugs::Doc::Hack.3
        /usr/local/man/man3/Pugs::Doc::Hack.3pm
        /usr/local/man/man3/Pugs::Doc::Run.3
        /usr/local/man/man3/Pugs::Doc::Run.3pm

    );
}

sub change_files {
    my ($dest, %change_files) = @_;
    for my $orig (keys %change_files) {
        my $dirs = $change_files{$orig};
        $dirs =~ s#/[^/]+$##;
        make_dir("$dest$dirs") unless (-d "$dest$dirs");
    
        qx/cp -r $orig $dest$change_files{$orig}/;
        remove_svn("$dest$dirs");
        print "Copied $orig to $dest$change_files{$orig}\n";
    }
}

sub make_symlinks {
    my ($dest, %symlinks) = @_;
    make_dir("${dest}/usr/bin") unless (-d "${dest}/usr/bin");
    chdir("${dest}/usr/local/bin");
    qx/ln -s $_ $symlinks{$_}/ for (keys %symlinks);
}


sub make_dir {
    my ($dir) = @_;
    my $curr_dir = "";
    for (split m#/#, $dir) {
        $curr_dir .= "$_/";
        if (!-d $curr_dir) {
            mkdir $curr_dir;
            print "Made $curr_dir\n";
        }
    }
}

sub remove_svn {
    my ($dir) = @_;
    print "Removing .svn under $dir\n";
    if (-e "$dir/.svn") {
        print `rm -rf $dir/.svn`;
        print "Removed $dir/.svn\n";
    }
    for my $sub_dir (grep -d, <$dir/*>) {
        remove_svn("$sub_dir");
    }
}    
    
sub copy_files {
    my ($dest, @files) = @_;
    for my $from (@files) {
        my $dirs = $from;
        $dirs =~ s#/[^/]+$##;
        make_dir("$dest$dirs") unless (-d "$dest$dirs");

        if ($_ = qx/cp -r $from $dest$from 2>&1/) {
            print "Error copying $from to $dest$from: $_\n";
        }
        else {
            print "Copied $from to $dest$from\n";
        }
    }
}


# @files are all files that will be removed. The last one passed in is the
# remover that will be installed on the target machine (hence the $file[-1]).
sub create_remover {
    my ($dest, @files) = @_;
    my $dirs = $files[-1];
    $dirs =~ s#/[^/]+$##;
    make_dir($dirs) unless (-d $dirs);
    
    open  REMOVER, '>', "$dest$files[-1]" or die "Can't open $dest$files[-1]!";

    my @header = qq(
        #!/usr/bin/perl
        # $files[-1]
        use strict;
        use warnings;\n
        chdir '/usr/local/bin';\n
        my \@files = qw\(
    );
    @header = map { s/^(?:\s{9}|\s{5}$)//; $_ } split /$/m, $header[0];

    my @footer = qq(
        \ 
        \);\n



( run in 0.426 second using v1.01-cache-2.11-cpan-5511b514fd6 )