From be22f546355ffb07a53997006097069b534cb169 Mon Sep 17 00:00:00 2001 From: Squibid Date: Sun, 16 Jul 2023 20:36:43 -0400 Subject: make the plugin actually work! 1. added branch checking 2. made updating work correctly --- eatit.lua | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/eatit.lua b/eatit.lua index 430986b..a2f2fa2 100644 --- a/eatit.lua +++ b/eatit.lua @@ -114,6 +114,17 @@ local function startinstall() plugins[i]['dir'] = '~~/' end + -- get the plugins tmp download dir + local plugdir = opts.dl.dir .. '/' .. + string.match(plugins[i][1], '/([^/]+)$'):gsub('.git', '') + + -- if no specified branch we use the default + if not plugins[i]['branch'] then + plugins[i]['branch'] = testforslash( + run('git -C ' .. plugdir .. ' symbolic-ref refs/remotes/origin/HEAD') + ) + end + -- get the file's dir local pluginfile = opts.dl.dir .. '/' .. string.match(plugins[i][1], '/([^/]+)$'):gsub('.git', '') .. @@ -122,18 +133,20 @@ local function startinstall() -- get the dest dir local destfile = mp.command_native({'expand-path', '~~/'}) .. '/' .. plugins[i]['dir'] .. - '/' .. plugins[i]['file'] + '/' .. testforslash(plugins[i]['file']) - if fileexists(pluginfile) then + if fileexists(plugdir .. '/') then -- if we need to update, update - if checkupdates(i) then + if checkupdates(plugdir) then logwrite(plugins[i]['file'] .. ' is updating.') - clonegit(i) + -- make sure we are on the main branch + run('git -C ' .. plugdir .. ' checkout -q ' .. plugins[i]['branch']) + run('git -C ' .. plugdir .. ' pull') -- get the latest commits else logwrite(plugins[i]['file'] .. ' is up to date!') end else - clonegit(i) + clonegit(plugdir, i) end -- copy the file contents over to the desired location -- cgit v1.2.1