From 2803343287ad61e240ddebce95acce875663ee9b Mon Sep 17 00:00:00 2001 From: Lucas Miguel Date: Tue, 3 Dec 2024 01:14:13 -0300 Subject: [PATCH] Finalizado ajuste para enviar arquivos --- lua/nvim-sync-ftp/cli.lua | 45 +++++++++++++++++++++++++++++++++++ lua/nvim-sync-ftp/message.lua | 2 +- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/lua/nvim-sync-ftp/cli.lua b/lua/nvim-sync-ftp/cli.lua index b0c6130..6dca4a9 100644 --- a/lua/nvim-sync-ftp/cli.lua +++ b/lua/nvim-sync-ftp/cli.lua @@ -80,9 +80,54 @@ end function M.Upload() getConfig() + local current_buffer_path = vim.api.nvim_buf_get_name(0) + local directoryTemp = directory + + -- message.warn("Send file ... Wait") + + if not directoryTemp:match("/$") then + directoryTemp = directoryTemp .. "/" + end + + local relative_path = current_buffer_path:sub(#directoryTemp + 1) + + if not config.remote_path:match("/$") then + config.remote_path = config.remote_path .. "/" + end + + local remotePath = config.remote_path .. relative_path + + local ftp_script = string.format([[ + open %s + user %s %s + put %s %s + bye + ]], config.host, config.user, config.password, current_buffer_path, remotePath) + local script_file = "ftp_commands.txt" + local file = io.open(script_file, "w") + file:write(ftp_script) + file:close() + + local log_file = "/tmp/ftp_log.txt" + local exit_code = os.execute(string.format("ftp -n < %s > %s 2>&1", script_file, log_file)) + + + local log = io.open(log_file, "r") + local log_content = log:read("*a") + log:close() + + if log_content:match("Error") or log_content:match("fail") then + message.error("Fail to upload file!" .. log_content) + else + message.success("File send successfully!") + end + + os.remove(script_file) + os.remove(log_file) + end return M diff --git a/lua/nvim-sync-ftp/message.lua b/lua/nvim-sync-ftp/message.lua index be8a5dd..d36730f 100644 --- a/lua/nvim-sync-ftp/message.lua +++ b/lua/nvim-sync-ftp/message.lua @@ -18,7 +18,7 @@ M.error_once = vim.schedule_wrap(function(fmt, ...) end) M.success = vim.schedule_wrap(function(fmt, ...) - vim.notify_once(fmt:format(...), vim.log.levels.SUCCESS, { title = 'Sync FTP'}) + vim.notify(fmt:format(...), levels.SUCCESS, { title = 'Sync FTP'}) end) return M