-
Brian Carrier authoredBrian Carrier authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
release-unix.pl 17.19 KiB
#!/usr/bin/perl
# Unix release script for TSK. This creates the SVN tag directory
# and then updates the needed version numbers. It also double checks
# that everything compiles.
#
# It must be run from a Unix-like system. It is currently being used
# on OS X, but other systems should work.
use strict;
use File::Copy;
# global variables
my $VER;
my $TSK_RELNAME; # sleuthkit-${VER}
my $RELDIR; # full path release folder
my $GITDIR;
my $CLONEDIR; # where a fresh copy of the repo was cloned to.
my $TARBALL;
my $BRANCH;
my $TESTING = 0;
print "TESTING MODE (no commits)\n" if ($TESTING);
my $CI = 0; # Continous Integration Run
######################################################
# Utility functions
# Function to execute a command and send output to pipe
# returns handle
# exec_pipe(HANDLE, CMD);
sub exec_pipe {
my $handle = shift(@_);
my $cmd = shift(@_);
die "Can't open pipe for exec_pipe"
unless defined(my $pid = open($handle, '-|'));
if ($pid) {
return $handle;
}
else {
$| = 1;
exec("$cmd") or die "Can't exec program: $!";
}
}
# Read a line of text from an open exec_pipe handle
sub read_pipe_line {
my $handle = shift(@_);
my $out;
for (my $i = 0; $i < 100; $i++) {
$out = <$handle>;
return $out if (defined $out);
}
return $out;
}
# Prompt user for argument and return response
sub prompt_user {
my $q = shift(@_);
print "$q: ";
$| = 1;
$_ = <STDIN>;
chomp;
return $_;