mirror of https://github.com/perkeep/perkeep.git
65 lines
2.0 KiB
Perl
Executable File
65 lines
2.0 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use File::Path qw(make_path);
|
|
|
|
die "This script is meant to be run within the camlistore/android Docker contain. Run 'make env' to build it.\n"
|
|
unless $ENV{IN_DOCKER};
|
|
|
|
my $mode = shift || "debug";
|
|
|
|
my $ANDROID = "/src/camlistore.org/clients/android";
|
|
my $ASSETS = "$ANDROID/assets";
|
|
my $GENDIR = "$ANDROID/gen/org/camlistore";
|
|
|
|
umask 0;
|
|
make_path($GENDIR, { mode => 0755 }) unless -d $GENDIR;
|
|
|
|
$ENV{GOROOT} = "/usr/local/go";
|
|
$ENV{GOBIN} = $GENDIR;
|
|
$ENV{GOPATH} = "/";
|
|
$ENV{GOARCH} = "arm";
|
|
print "Building ARM camlistore.org/cmd/camput\n";
|
|
system("/usr/local/go/bin/go", "install", "camlistore.org/cmd/camput")
|
|
and die "Failed to build camput";
|
|
|
|
system("cp", "-p", "$GENDIR/linux_arm/camput", "$ASSETS/camput.arm")
|
|
and die "cp failure";
|
|
# TODO: build an x86 version too? if/when those Android devices matter.
|
|
|
|
{
|
|
open(my $vfh, ">$ASSETS/camput-version.txt") or die "open camput-version error: $!";
|
|
# TODO(bradfitz): make these values automatic, and don't make the
|
|
# "Version" menu say "camput version" when it runs. Also maybe
|
|
# keep a history of these somewhere more convenient.
|
|
print $vfh "app 0.6.1 camput ccacf764 go 70499e5fbe5b";
|
|
}
|
|
|
|
chdir $ASSETS or die "can't cd to assets dir";
|
|
|
|
my $digest = `openssl sha1 camput.arm`;
|
|
chomp $digest;
|
|
print "ARM camput is $digest\n";
|
|
die "No digest" unless $digest;
|
|
write_file("$GENDIR/ChildProcessConfig.java", "package org.camlistore; public final class ChildProcessConfig { // $digest\n}");
|
|
|
|
print "Running ant $mode\n";
|
|
chdir $ANDROID or die "can't cd to android dir";
|
|
exec "ant",
|
|
"-Dsdk.dir=/usr/local/android-sdk-linux",
|
|
"-Dkey.store=/keys/android-camlistore.keystore",
|
|
"-Dkey.alias=camkey",
|
|
$mode;
|
|
|
|
sub write_file {
|
|
my ($file, $contents) = @_;
|
|
if (open(my $fh, $file)) {
|
|
my $cur = do { local $/; <$fh> };
|
|
return if $cur eq $contents;
|
|
}
|
|
open(my $fh, ">$file") or die "Failed to open $file: $!";
|
|
print $fh $contents;
|
|
close($fh) or die "Close: $!";
|
|
print "Wrote $file\n";
|
|
}
|