git-ahead-check/src/git-ahead-check.cr

35 lines
829 B
Crystal

require "colorize"
CONFIG_PATH = "#{ENV["HOME"]}/.config/emilecok/git-ahead-check"
if File.exists?(CONFIG_PATH)
a = File.read_lines(CONFIG_PATH)
repos_dirs = File.read_lines(CONFIG_PATH)
repos_dirs.each { |x| check_repo(x) }
else
Dir.mkdir_p(File.dirname(CONFIG_PATH))
File.new(CONFIG_PATH, "w")
print File.dirname(CONFIG_PATH)
puts " directory created.\n"
end
def check_repo(repo_path : String)
if !Dir.exists?(repo_path.sub("$HOME", ENV["HOME"]))
return 0
end
repo_name = repo_path.split("/")[-1]
ahead_count = `git -C #{repo_path} status | grep -i "Your branch" | grep -Eo "[0-9]"`.chomp
if !ahead_count.empty?
print "* #{ahead_count}\t".colorize(:red).mode(:bold)
print repo_name.colorize(:yellow)
print " ["
print repo_path.colorize(:light_magenta)
puts "]"
end
end