aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--eatit.lua37
1 files changed, 22 insertions, 15 deletions
diff --git a/eatit.lua b/eatit.lua
index fe58b87..53c6856 100644
--- a/eatit.lua
+++ b/eatit.lua
@@ -37,11 +37,12 @@ local function logwrite(string)
end
end
-local function clonegit(pluginlink)
- logwrite('downloading ' .. pluginlink)
+-- get the requested git repos
+local function clonegit(i)
+ logwrite('downloading ' .. plugins[i][1])
-- construct the git cmd
- local cmd = 'git -C ' .. opts.dl.dir .. ' clone ' .. pluginlink
+ local cmd = 'git -C ' .. opts.dl.dir .. ' clone ' .. plugins[i][1]
-- run the command and get the result for logging
local run = io.popen(cmd)
@@ -51,15 +52,16 @@ local function clonegit(pluginlink)
run:close()
end
-local function checkupdates(i, pluginfile, pluginlink)
+-- check for updates
+local function checkupdates(i)
local plugdir = opts.dl.dir .. '/' ..
- string.match(pluginlink, '/([^/]+)$')
+ string.match(plugins[i][1], '/([^/]+)$'):gsub('.git', '')
- local localhashcmd = 'cd ' .. plugdir ..
- '; git log -1 --format=format:"%H"'
+ local localhashcmd = 'git -C ' .. plugdir .. ' log -1 --format=format:"%H"'
- local remotehashcmd = 'cd ' .. plugdir ..
- '; git log -n 1 $(git branch -r | head -1 | cut -d " " -f 3)' ..
+ local remotehashcmd = 'git -C ' .. plugdir ..
+ ' log -n 1 $(git -C ' .. plugdir ..
+ ' branch -r | head -1 | cut -d " " -f 3)' ..
' | head -1 | cut -d " " -f 2'
local a = io.popen(localhashcmd)
@@ -71,10 +73,9 @@ local function checkupdates(i, pluginfile, pluginlink)
a:close()
if localhash ~= remotehash then
- logwrite(plugins[i]['file'] .. ' is updating.')
- clonegit(pluginlink)
+ return true
else
- logwrite(plugins[i]['file'] .. ' is up to date!')
+ return false
end
end
@@ -97,7 +98,7 @@ local function startinstall()
-- get the file's dir
local pluginfile = opts.dl.dir .. '/' ..
- string.match(plugins[i][1], '/([^/]+)$') ..
+ string.match(plugins[i][1], '/([^/]+)$'):gsub('.git', '') ..
'/' .. plugins[i]['file']
-- get the dest dir
@@ -106,9 +107,15 @@ local function startinstall()
'/' .. plugins[i]['file']
if fileexists(pluginfile) then
- checkupdates(i, pluginfile, plugins[i][1])
+ -- if we need to update, update
+ if checkupdates(i) then
+ logwrite(plugins[i]['file'] .. ' is updating.')
+ clonegit(i)
+ else
+ logwrite(plugins[i]['file'] .. ' is up to date!')
+ end
else
- clonegit(plugins[i][1])
+ clonegit(i)
end
-- copy the file contents over to the desired location