35 lines
829 B
Crystal
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
|