module ConfigLint def self.run(files) failures = files.reject do |file| yield(file) end if failures.present? puts failures exit failures.count end end end desc "Checks syntax for shell scripts and nginx config files in 'lib/support/'" task :config_lint do shell_scripts = [ 'lib/support/init.d/gitlab', 'lib/support/init.d/gitlab.default.example', 'lib/support/deploy/deploy.sh' ] ConfigLint.run(shell_scripts) do |file| Kernel.system('bash', '-n', file) end end