lib/autobuild/import/git-lfs.rb in autobuild-1.17.0 vs lib/autobuild/import/git-lfs.rb in autobuild-1.18.0

- old
+ new

@@ -1,43 +1,50 @@ # Disable git-lfs at checkout time, we run install --local and pull later Autobuild::Git.default_config['filter.lfs.smudge'] = 'git-lfs smudge --skip -- %f' Autobuild::Git.default_config['filter.lfs.required'] = 'false' module Autobuild - Git.add_post_hook(always: true) do |importer, package| - if importer.options[:lfs] != false && importer.uses_lfs?(package) && !Git.lfs_installed? - Autobuild.warn "#{package.name} uses git LFS but it is not installed, files may be missing from checkout" - end + def self.lfs_setup(importer, package) + importer.run_git(package, 'lfs', 'install', '--force', '--local', '--skip-smudge') - lfs_dir = File.join(package.srcdir, '.git', 'lfs') - if File.directory?(lfs_dir) - importer.run_git(package, 'lfs', 'install', '--force', '--local', '--skip-smudge') - - includes = importer.options.fetch(:lfs_include, '') - if includes.empty? - begin - importer.run_git_bare(package, 'config', '--local', '--unset', 'lfs.fetchinclude') - rescue SubcommandFailed => e - raise if e.status != 5 - end - else - importer.run_git_bare(package, 'config', '--local', 'lfs.fetchinclude', includes) + includes = importer.options.fetch(:lfs_include, '') + if includes.empty? + begin + importer.run_git_bare(package, 'config', '--local', + '--unset', 'lfs.fetchinclude') + rescue SubcommandFailed => e + raise if e.status != 5 end + else + importer.run_git_bare(package, 'config', '--local', + 'lfs.fetchinclude', includes) + end - excludes = importer.options.fetch(:lfs_exclude, '') - if excludes.empty? - begin - importer.run_git_bare(package, 'config', '--local', '--unset', 'lfs.fetchexclude') - rescue SubcommandFailed => e - raise if e.status != 5 - end - else - importer.run_git_bare(package, 'config', '--local', 'lfs.fetchexclude', excludes) + excludes = importer.options.fetch(:lfs_exclude, '') + if excludes.empty? + begin + importer.run_git_bare(package, 'config', '--local', + '--unset', 'lfs.fetchexclude') + rescue SubcommandFailed => e + raise if e.status != 5 end + else + importer.run_git_bare(package, 'config', '--local', + 'lfs.fetchexclude', excludes) + end - if importer.options[:lfs] != false - importer.run_git(package, 'lfs', 'pull', importer.remote_name) - end + if importer.options[:lfs] != false + importer.run_git(package, 'lfs', 'pull', importer.remote_name) end end -end + Git.add_post_hook(always: true) do |importer, package| + wants_lfs = (importer.options[:lfs] != false && importer.uses_lfs?(package)) + if wants_lfs && !Git.lfs_installed? + Autobuild.warn "#{package.name} uses git LFS but it is not installed, "\ + "files may be missing from checkout" + end + + lfs_dir = File.join(package.srcdir, '.git', 'lfs') + Autobuild.lfs_setup(importer, package) if File.directory?(lfs_dir) + end +end