summaryrefslogtreecommitdiffstats
path: root/Tools/qt/make-snapshot.pl
blob: 27c5621d6184d202b146c4338fd05b9519d2fa89 (plain)
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
40
#!/usr/bin/env perl

use Cwd;
use File::Basename;
use strict;
use warnings;

sub usage {
    my $msg = shift || "";
    die $msg . "Usage: cd target/repo/path; $0 src/repo/path";
}

scalar @ARGV == 0 || usage();
-f "ChangeLog" && die "This script must be run in snapshots repository";
-d ".git" || usage();

`git status` =~ "nothing to commit, working tree clean" or die "Target working tree is dirty";

my $src_repo = dirname(dirname(dirname(__FILE__)));
my $target_repo = getcwd();

chdir $src_repo;
(-f "ChangeLog" && -x "Tools/gtk/make-dist.py") or usage("Target repository path is invalid!\n");
my $commit = `git rev-parse HEAD` or usage("Cannot get HEAD revision in target repo!\n");
chomp $commit;

my @commands = (
    "Tools/gtk/make-dist.py -t snapshot Tools/qt/manifest.txt",
    "cd $target_repo",
    "git rm -rf *",
    "tar -xf $src_repo/snapshot.tar --strip-components=1",
    "git add -A",
    "rm $src_repo/snapshot.tar",
    "git commit -m 'Imported WebKit commit $commit'"
);

my $cmd = join " && ", @commands;
print "Executing $cmd\n";

exec $cmd;