9
9
"os"
10
10
11
11
"github.com/lima-vm/lima/pkg/limayaml"
12
- "github.com/lima-vm/lima/pkg/localpathutil"
13
12
"github.com/lima-vm/sshocker/pkg/reversesshfs"
14
13
"github.com/sirupsen/logrus"
15
14
)
@@ -35,16 +34,7 @@ func (a *HostAgent) setupMounts() ([]*mount, error) {
35
34
}
36
35
37
36
func (a * HostAgent ) setupMount (m limayaml.Mount ) (* mount , error ) {
38
- location , err := localpathutil .Expand (m .Location )
39
- if err != nil {
40
- return nil , err
41
- }
42
-
43
- mountPoint , err := localpathutil .Expand (* m .MountPoint )
44
- if err != nil {
45
- return nil , err
46
- }
47
- if err := os .MkdirAll (location , 0o755 ); err != nil {
37
+ if err := os .MkdirAll (m .Location , 0o755 ); err != nil {
48
38
return nil , err
49
39
}
50
40
// NOTE: allow_other requires "user_allow_other" in /etc/fuse.conf
@@ -55,35 +45,35 @@ func (a *HostAgent) setupMount(m limayaml.Mount) (*mount, error) {
55
45
if * m .SSHFS .FollowSymlinks {
56
46
sshfsOptions += ",follow_symlinks"
57
47
}
58
- logrus .Infof ("Mounting %q on %q" , location , mountPoint )
48
+ logrus .Infof ("Mounting %q on %q" , m . Location , * m . MountPoint )
59
49
60
50
rsf := & reversesshfs.ReverseSSHFS {
61
51
Driver : * m .SSHFS .SFTPDriver ,
62
52
SSHConfig : a .sshConfig ,
63
- LocalPath : location ,
53
+ LocalPath : m . Location ,
64
54
Host : "127.0.0.1" ,
65
55
Port : a .sshLocalPort ,
66
- RemotePath : mountPoint ,
56
+ RemotePath : * m . MountPoint ,
67
57
Readonly : ! (* m .Writable ),
68
58
SSHFSAdditionalArgs : []string {"-o" , sshfsOptions },
69
59
}
70
60
if err := rsf .Prepare (); err != nil {
71
- return nil , fmt .Errorf ("failed to prepare reverse sshfs for %q on %q: %w" , location , mountPoint , err )
61
+ return nil , fmt .Errorf ("failed to prepare reverse sshfs for %q on %q: %w" , m . Location , * m . MountPoint , err )
72
62
}
73
63
if err := rsf .Start (); err != nil {
74
- logrus .WithError (err ).Warnf ("failed to mount reverse sshfs for %q on %q, retrying with `-o nonempty`" , location , mountPoint )
64
+ logrus .WithError (err ).Warnf ("failed to mount reverse sshfs for %q on %q, retrying with `-o nonempty`" , m . Location , * m . MountPoint )
75
65
// NOTE: nonempty is not supported for libfuse3: https://github.com/canonical/multipass/issues/1381
76
66
rsf .SSHFSAdditionalArgs = []string {"-o" , "nonempty" }
77
67
if err := rsf .Start (); err != nil {
78
- return nil , fmt .Errorf ("failed to mount reverse sshfs for %q on %q: %w" , location , mountPoint , err )
68
+ return nil , fmt .Errorf ("failed to mount reverse sshfs for %q on %q: %w" , m . Location , * m . MountPoint , err )
79
69
}
80
70
}
81
71
82
72
res := & mount {
83
73
close : func () error {
84
- logrus .Infof ("Unmounting %q" , location )
85
- if closeErr := rsf .Close (); closeErr != nil {
86
- return fmt .Errorf ("failed to unmount reverse sshfs for %q on %q: %w" , location , mountPoint , err )
74
+ logrus .Infof ("Unmounting %q" , m . Location )
75
+ if err := rsf .Close (); err != nil {
76
+ return fmt .Errorf ("failed to unmount reverse sshfs for %q on %q: %w" , m . Location , * m . MountPoint , err )
87
77
}
88
78
return nil
89
79
},
0 commit comments