WIP: feature/1-add-support-for-fs-crud #47

Draft
glenux wants to merge 53 commits from feature/1-add-support-for-fs-crud into develop
Showing only changes of commit da0cf858a4 - Show all commits

View file

@ -5,12 +5,48 @@ module GX::Commands
def initialize(@config : GX::Config) # FIXME def initialize(@config : GX::Config) # FIXME
@config.load_from_env @config.load_from_env
@config.load_from_file @config.load_from_file
@file_system_manager = FileSystemManager.new(@config)
end end
def execute def execute
# FIXME: implement # Assuming create_args is passed to this command with necessary details
puts "mapping create yo!" create_args = @config.create_args
# Validate required arguments
if create_args[:name].empty? || create_args[:path].empty?
raise ArgumentError.new("Name and path are required to create a mapping.")
end
# Create the appropriate filesystem config based on the type
filesystem_config = case create_args[:type]
when "gocryptfs"
GX::Models::GocryptfsConfig.new(
name: create_args[:name],
path: create_args[:path],
encrypted_path: create_args[:encrypted_path]
)
when "sshfs"
GX::Models::SshfsConfig.new(
name: create_args[:name],
path: create_args[:path],
remote_user: create_args[:remote_user],
remote_host: create_args[:remote_host],
remote_path: create_args[:remote_path],
remote_port: create_args[:remote_port]
)
when "httpdirfs"
GX::Models::HttpdirfsConfig.new(
name: create_args[:name],
path: create_args[:path],
url: create_args[:url]
)
else
raise ArgumentError.new("Unsupported mapping type: #{create_args[:type]}")
end
# Append the new filesystem config to the root config
@config.root.try &.filesystems << filesystem_config
puts "Mapping '#{create_args[:name]}' created and added to configuration successfully."
end end
def self.handles_mode def self.handles_mode