-
-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathuncompressed.lua
More file actions
47 lines (37 loc) · 1.25 KB
/
uncompressed.lua
File metadata and controls
47 lines (37 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
local class = require('java-core.utils.class')
local log = require('java-core.utils.log2')
---@class java-core.Uncompressed
---@field source string
---@field dest string
local Uncompressed = class()
---@class java-core.UncompressedOpts
---@field source string Path to jar file
---@field dest string Destination directory
---@param opts java-core.UncompressedOpts
function Uncompressed:_init(opts)
self.source = opts.source
self.dest = opts.dest
end
---Move jar file to destination
---@return boolean|nil # true on success, nil on failure
---@return string|nil # Error message if failed
function Uncompressed:extract()
log.debug('Moving uncompressed file:', self.source, 'to', self.dest)
if not self.source:lower():match('%.jar$') then
local err = 'Only .jar files are supported'
log.error(err)
return nil, err
end
local filename = vim.fn.fnamemodify(self.source, ':t')
local dest_path = vim.fn.resolve(self.dest .. '/' .. filename)
log.debug('Destination path:', dest_path)
local success = vim.loop.fs_copyfile(self.source, dest_path)
if not success then
local err = string.format('Failed to copy %s to %s', self.source, dest_path)
log.error(err)
return nil, err
end
log.debug('File move completed')
return true, nil
end
return Uncompressed