#!/usr/bin/perl use strict; use FindBin qw($Bin); use Getopt::Long; require "$Bin/misc/devlib.pl"; my @blobref_arg; if (@ARGV) { my $blobref = shift; unless ($blobref && $blobref =~ /^\w+-[0-9a-f]{10,}$/) { die "Usage: dev-cammount []\n"; } push @blobref_arg, $blobref; } 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", "--server=http://localhost:3179/bs", $dir, @blobref_arg) 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; }