Initial original import from: fuse-2.4.2-2.fc4
[captive.git] / src / client / lufs / mount.captive.in
index 1c4d1bc..3e0a47f 100755 (executable)
@@ -1,7 +1,7 @@
 #! /usr/bin/perl -w
 # 
 # $Id$
-# External mount command for mount(8) to interface lufsmount(1)
+# External mount command for mount(8) to interface lufsd(1)
 # Copyright (C) 2003 Jan Kratochvil <project-captive@jankratochvil.net>
 # 
 # This program is free software; you can redistribute it and/or modify
@@ -28,14 +28,12 @@ use Getopt::Long;
 my $vardir='@localstatedir@/lib/captive';
 $vardir=~s#\$\Q{prefix}\E#'@prefix@';#ge;
 $vardir="/var/lib/captive" if $vardir=~/^@/;
-my $lufsmount_bin='@bindir@/lufsmount';
-$lufsmount_bin=~s#\$\Q{exec_prefix}\E#'@exec_prefix@';#ge;
-$lufsmount_bin=~s#\$\Q{prefix}\E#'@prefix@';#ge;
-$lufsmount_bin="/usr/bin/lufsmount" if $lufsmount_bin=~/^@/;
-my $captive_sandbox_server_bin='@sbindir@/captive-sandbox-server';
+my $lufsd_bin='@PATH_LUFSD@';
+$lufsd_bin="/usr/bin/lufsd" if $lufsd_bin=~/^@/;
+my $captive_sandbox_server_bin='@libexecdir@/captive-sandbox-server';
 $captive_sandbox_server_bin=~s#\$\Q{exec_prefix}\E#'@exec_prefix@';#ge;
 $captive_sandbox_server_bin=~s#\$\Q{prefix}\E#'@prefix@';#ge;
-$captive_sandbox_server_bin="/usr/sbin/captive-sandbox-server" if $captive_sandbox_server_bin=~/^@/;
+$captive_sandbox_server_bin="/usr/libexec/captive-sandbox-server" if $captive_sandbox_server_bin=~/^@/;
 
 
 my $ME=($0=~m#([^/]*)$#)[0] or die "Cannot detetect my basename from: $0";
@@ -73,29 +71,30 @@ if (!-r $ntoskrnl) {
        die_install();
        }
 
-# Shameless advertisement:
-if ($fsname eq "ntfs") {
-       for my $fh (*STDERR,*STDOUT) {
-               if (-t $fh) {
-                       print $fh 'Captive NTFS v@VERSION@.  Check new version: http://www.jankratochvil.net/'."\n";
-                       last;
-                       }
-               }
-       }
-
-
 # Keep @opt_captive ordering
 # to let the options be overridable by user (such as 'ro').
 my @opt_captive=();
 my @opt_lufs=();
 my $opt_force;
+my $opt_rwmode="--blind";
 for (split /,/,$oo) {
        $_="--$_" if $_ eq "ro" || $_ eq "rw";
+       $opt_rwmode=$_ if /^--(?:ro|rw|blind)$/;
        $opt_force=1 if $_ eq "force";
        push @opt_captive,$_ if  /^--/;
        push @opt_lufs,$_    if !/^--/;
        }
 
+# Shameless advertisement:
+if ($fsname eq "ntfs") {
+       for my $fh (*STDERR,*STDOUT) {
+               if (-t $fh) {
+                       print $fh 'Captive NTFS v@VERSION@.  Check a new version at: http://www.jankratochvil.net/'."\n";
+                       last;
+                       }
+               }
+       }
+
 if (!$opt_force) {
        local *MTAB;
        if (!open MTAB,"/etc/mtab") {
@@ -114,6 +113,7 @@ if (!$opt_force) {
        }
 
 $oo=""
+               ."fs=captivefs,"
                ."mntent.mnt_fsname=$image,mntent.mnt_type=captive-$fsname,"    # Double-dashes forbidden.
                ."dir_cache_entries=0,"
                ."image=$image,"
@@ -129,8 +129,8 @@ $oo=""
 warn "$0: '-n' not supported - ignored" if $nomtab;
 
 # Use "'$oo'" to permit another expansion by bash(1) during lufsmnt(8) execution.
-my @argv=($lufsmount_bin,"captivefs://",$dir,"-o","'$oo'");
+my @argv=($lufsd_bin,"none",$dir,"-o",$oo);
 
 print STDERR "$0: @argv\n" if $verbose;
-exec $lufsmount_bin @argv;
+exec $lufsd_bin @argv;
 die "Failed to execute: @argv";