#!/usr/bin/perl ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or 3 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ BEGIN { unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build'); } use Build; use strict; my $createmeta; my $manifest; while (@ARGV) { if ($ARGV[0] eq '--createmeta') { shift @ARGV; $createmeta = 1; next; } if ($ARGV[0] eq '--manifest') { shift @ARGV; $manifest = shift @ARGV; next; } last; } my @files; if ($manifest) { if ($manifest eq '-') { @files = ; } else { local *F; open(F, '<', $manifest) || die("$manifest: $!\n"); @files = ; close F; } chomp @files; } push @files, @ARGV; for my $file (@files) { my $sig = Build::queryhdrmd5($file); die("$file: no signature available\n") unless $sig; if ($createmeta) { local *F; my $mf = $file; $mf =~ s/\.[^\.]*$//; $mf .= ".meta"; open(F, '>', $mf) || die("$mf: $!\n"); print F "$sig sigmd5\n"; close(F) || die("$mf: $!\n"); } else { print "$sig\n"; } }