feat: add support for sshfs option (-o) in config
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

This commit is contained in:
Glenn Y. Rolland 2024-10-05 10:54:40 +02:00
parent 36fd938325
commit 5f775ac45f
3 changed files with 17 additions and 9 deletions

View file

@ -16,7 +16,7 @@ module GX
class Cli class Cli
Log = ::Log.for("cli") Log = ::Log.for("cli")
@config : GX::Config @config : GX::Config
def initialize def initialize
# Main execution starts here # Main execution starts here

View file

@ -31,6 +31,6 @@ Log.setup do |config|
end end
end end
app = GX::Cli.new cli = GX::Cli.new
app.parse_command_line(ARGV) cli.parse_command_line(ARGV)
app.run cli.run

View file

@ -13,6 +13,7 @@ module GX::Models
getter remote_user : String = "" getter remote_user : String = ""
getter remote_host : String = "" getter remote_host : String = ""
getter remote_port : String = "22" getter remote_port : String = "22"
getter options : Array(String) = [] of String
include Concerns::Base include Concerns::Base
@ -28,13 +29,19 @@ module GX::Models
mount_point_safe = @mount_point mount_point_safe = @mount_point
raise InvalidMountpointError.new("Invalid mount point") if mount_point_safe.nil? raise InvalidMountpointError.new("Invalid mount point") if mount_point_safe.nil?
options = [] of String
# merge sshfs options
@options.each do |option|
options.push("-o", option)
end
options.push("-p", remote_port)
options.push(
"#{@remote_user}@#{@remote_host}:#{@remote_path}",
mount_point_safe
)
process = Process.new( process = Process.new(
"sshfs", "sshfs",
[ options,
"-p", remote_port,
"#{@remote_user}@#{@remote_host}:#{@remote_path}",
mount_point_safe,
],
input: STDIN, input: STDIN,
output: STDOUT, output: STDOUT,
error: STDERR error: STDERR
@ -43,3 +50,4 @@ module GX::Models
end end
end end
end end