mirror of https://github.com/perkeep/perkeep.git
31 lines
761 B
Perl
Executable File
31 lines
761 B
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use FindBin qw($Bin);
|
|
use Getopt::Long;
|
|
require "$Bin/misc/devlib.pl";
|
|
|
|
my $blobref = shift;
|
|
unless ($blobref && $blobref =~ /^\w+-[0-9a-f]{10,}$/) {
|
|
die "Usage: dev-cammount [blobref]\n";
|
|
}
|
|
my $cammount = build_bin("./cmd/cammount");
|
|
|
|
my $dir = "/tmp/cammount-dir";
|
|
mkdir $dir, 0700 unless -d $dir;
|
|
|
|
try_unmount();
|
|
print "Mounting on $dir ...\n";
|
|
system("$cammount", "--blobserver=localhost:3179/bs", $blobref, $dir)
|
|
and warn "cammount failure: $!\n";
|
|
warn "Failed to unmount\n" unless try_unmount();
|
|
|
|
sub try_unmount {
|
|
if ($^O eq "linux" && system("fusermount", "-u", $dir) == 0) {
|
|
return 1;
|
|
}
|
|
return 1 if system("umount", $dir) == 0;
|
|
return 1 if system("umount", "-f", $dir) == 0;
|
|
return 0;
|
|
}
|