Pro Git
Pro Git
🎯 ¿Cansado de los anuncios?
Elimínalos ahora 🚀
×
Crea tu biblioteca personal!
Si aún no tienes cuenta, registrarse es gratis y rápido. Al hacerlo, podrás guardar tus libros en tu biblioteca personal, y reanudar la lectura exactamente donde la dejaste, en cualquier dispositivo, sin descargas ni configuraciones adicionales.
Iniciar sesión o Registrarse
#!/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