0
현재 인수에서 md5 해시를 만들고 싶습니다. 그런 다음 해시를 파일에 쓰고 싶습니다 (경로가 다른 인수 임).md5 꼭두각시 사용자 정의 함수에서 해시
module Puppet::Parser::Functions
newfunction(:write_line_to_file) do |args|
require 'md5'
filename = args[0]
str = MD5.new(lookupvar(args[1])).to_s
File.open(filename, 'a') {|fd| fd.puts str }
end
end
그리고 꼭두각시 매니페스트 전화 :
write_line_to_file('/tmp/some_hash', "Hello world!")
내가 얻을 결과는 파일과 내용이 해시하지만 원래 문자열이 아닌 사용자 정의 함수
. (예제 Hello World!)
이 사용자 정의 함수는 실용적인 용도가 없다는 것을 알고 있습니다. md5 해시가 어떻게 작동하는지 이해하고 싶습니다.
--- UPD ---
새로운 기능 (제대로 작동)을 사용하는 루비
require 'digest'
module Puppet::Parser::Functions
newfunction(:lxwrite_line_to_file) do |args|
filename = args[0]
str = Digest::MD5.hexdigest args[1]
File.open(filename, 'w') {|fd| fd.puts str }
end
end
나는 꼭두각시 기업이 보통 루비 1.9.3과 함께 배송된다는 것을 알고 있습니다. 대답은 여전히 적용될 수 있습니다. – ptierno
나는 루비 2.0을 가졌다. 나는 당신의 제안을 시도했지만, 문제는 남아 있습니다. 파일의 원래 문자열이 없습니다. 해시 값이 없습니다. –
다른 문제가있는 것 같습니다. 내가 'str'에 할당하는 것은 중요하지 않습니다. 파일에서 항상 호출의 두 번째 매개 변수입니다. –