blob: 02b6f869d467113e5743c61dad3174e79012d1ba [file] [log] [blame] [edit]
local m = {}
local last_str = ''
function iop(str)
io.write(('\b \b'):rep(#last_str)) -- erase old line
io.write(str) -- write new line
io.flush()
last_str = str
end
newoption({ trigger = 'no-download-progress', description = 'Hide progress?' })
function m.github(project, tag)
local dependencies = os.getenv('DEPENDENCIES')
if dependencies == nil then
dependencies = path.getabsolute(_WORKING_DIR) .. '/dependencies'
os.mkdir(dependencies)
end
local dirname = project .. '_' .. tag
dirname = string.gsub(dirname, '/', '_')
local dependency_path = dependencies .. '/' .. dirname
if not os.isdir(dependency_path) then
print('Fetching dependency ' .. project .. ' at tag ' .. tag .. '...')
local gitcmd = 'git -c advice.detachedHead=false -C '
.. dependencies
.. ' clone --depth 1 --branch '
.. tag
.. ' https://github.com/'
.. project
.. '.git'
.. ' '
.. dirname
if not os.execute(gitcmd) then
error('\nError executing command:\n ' .. cmd)
end
end
assert(os.isdir(dependency_path))
return dependency_path
end
return m