require "colorize" require "option_parser" VERSION = {{ `shards version "#{__DIR__}"`.chomp.stringify }} begin OptionParser.parse do |parser| parser.banner = "The very simple password manager for humans\n" parser.on "-h", "--help", "Show help" do puts parser exit(0) end parser.on "-v", "Show version" do puts VERSION exit(0) end end rescue ex puts ex.message, "" end 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 if !Dir.exists?("#{repo_path}/.git") 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