7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/gitloc.rb', line 7
def self.call(argv, outstream, errstream)
repo = argv.first
Dir.mktmpdir { |dir|
Dir.chdir dir
out, err, status = Open3.capture3 'git', 'clone', repo, 'cloned'
unless status.success?
errstream.puts out, err
exit "Failed somehow >.<"
end
Dir.chdir 'cloned'
files = Dir['**/*'].reject { |name| File.directory? name }
files.each do |filename|
loc = File.readlines(filename).count { |line| line !~ /^\s*$/ }
outstream.puts "#{loc}\t#{filename}"
end
}
end
|