Pro Git

Pro Git

🎯 ¿Cansado de los anuncios?
Elimínalos ahora 🚀
#!/usr/bin/env ruby require 'optparse' path = File.expand_path '~/.git-credentials' OptionParser.new do |opts| opts.banner = 'USAGE: git-credential-read-only [options] <action>' opts.on('-f', '--file PATH', 'Specify path for backing store') do |argpath| path = File.expand_path argpath end end.parse! exit(0) unless ARGV[0].downcase == 'get' exit(0) unless File.exists? path known = {} while line = STDIN.gets break if line.strip == '' k,v = line.strip.split '=', 2 known[k] = v end File.readlines(path).each do |fileline| prot,user,pass,host = fileline.scan(/^(.*?):\/\/(.*?):(.*?)@(.*)$/).first if prot == known['protocol'] and host == known['host'] then puts "protocol=#{prot}" puts "host=#{host}" puts "username=#{user}" puts "password=#{pass}" exit(0) end end Aquí analizamos las opciones de la línea de comando, permitiendo al usuario especificar un archivo. El default es ~/.git-credentials. Este programa sólo responde si la acción es get y el archivo de almacenamiento existe. Este bucle lee de “stdin” hasta que se encuentre la primer línea en blanco. Los inputs son guardados en el hash known para una posterior referencia. Este bucle lee el contenido del archivo de almacenamiento, buscando por concordancias. Si el protocolo y el host de known concuerdan con la línea, el programa imprime el resultado a “stdout” y sale.

Guardaremos nuestro modo como git-credential-read-only, ponlo en algún lugar en nuestro PATH y lo marcamos como ejecutable. Aquí se muestra cómo se vería una sesión interactiva:


👉 Descargar el audiolibro GRATIS en Amazon
Reportar problema / Sugerencias
🧠 Hacer Trivia

eXTReMe Tracker