Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 May 2010 22:27:22 +0300
From:      Eitan Adler <lists@eitanadler.com>
To:        vogelke+unix@pobox.com
Cc:        freebsd-questions@freebsd.org, David Allen <the.real.david.allen@gmail.com>
Subject:   Re: md5(1) and cal(1)
Message-ID:  <AANLkTimXdqm_MQqViaHQxsH8K3yQ_B3R2UTRZOYNzLhK@mail.gmail.com>
In-Reply-To: <20100511175621.4B861BE5F@bsd118.wpafb.af.mil>
References:  <AANLkTil779I9T4JhvaHgCCYkbSTz4xoqzjGv6wYVpYaR@mail.gmail.com>  <20100511175621.4B861BE5F@bsd118.wpafb.af.mil>

next in thread | previous in thread | raw e-mail | index | archive | help
--e0cb4e887e21f2af110486568423
Content-Type: text/plain; charset=UTF-8

> D> 2. Why doesn't md5(1) have a "check" option?  Seems to me requiring a
> D> manual inspection is error-prone at best, and makes scripting
> D> unecessarily complicated.
>

Would something like the attached patch be good?
It adds a -c option for a string to check against. It prints "[failed]" if
the string does not match the files md5 unless in -q mode.
It also returns 2 to indicate md5 match failure for use in scripts.

--e0cb4e887e21f2af110486568423
Content-Type: application/octet-stream; name="md5-check.patch"
Content-Disposition: attachment; filename="md5-check.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g9345t3k0

SW5kZXg6IG1kNS4xCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIG1kNS4xCShyZXZpc2lvbiAyMDc0MzMpCisrKyBt
ZDUuMQkod29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMsOCBAQAogVGhlIGhleGFkZWNpbWFsIGNo
ZWNrc3VtIG9mIGVhY2ggZmlsZSBsaXN0ZWQgb24gdGhlIGNvbW1hbmQgbGluZSBpcyBwcmludGVk
CiBhZnRlciB0aGUgb3B0aW9ucyBhcmUgcHJvY2Vzc2VkLgogLkJsIC10YWcgLXdpZHRoIGluZGVu
dAorLkl0IEZsIGMgQXIgc3RyaW5nCitDb21wYXJlIGZpbGVzIHRvIHRoaXMgbWQ1IHN0cmluZwog
Lkl0IEZsIHMgQXIgc3RyaW5nCiBQcmludCBhIGNoZWNrc3VtIG9mIHRoZSBnaXZlbgogLkFyIHN0
cmluZyAuCkBAIC0xMDEsNyArMTAzLDggQEAKIGFuZAogLk5tIHJtZDE2MAogdXRpbGl0aWVzIGV4
aXQgMCBvbiBzdWNjZXNzLAotYW5kIDEgaWYgYXQgbGVhc3Qgb25lIG9mIHRoZSBpbnB1dCBmaWxl
cyBjb3VsZCBub3QgYmUgcmVhZC4KKzEgaWYgYXQgbGVhc3Qgb25lIG9mIHRoZSBpbnB1dCBmaWxl
cyBjb3VsZCBub3QgYmUgcmVhZCwKK2FuZCAyIGlmIGF0IGxlYXN0IG9uZSBmaWxlIGRvZXMgbm90
IGhhdmUgdGhlIHNhbWUgaGFzaCBhcyB0aGUgLWMgb3B0aW9uLgogLlNoIFNFRSBBTFNPCiAuWHIg
Y2tzdW0gMSAsCiAuWHIgbWQ1IDMgLApJbmRleDogbWQ1LmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbWQ1LmMJ
KHJldmlzaW9uIDIwNzQzMykKKysrIG1kNS5jCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw4
IEBACiBpbnQgcWZsYWc7CiBpbnQgcmZsYWc7CiBpbnQgc2ZsYWc7Cit1bnNpZ25lZCBjaGFyKiBj
aGVja0FnYWluc3Q7CitpbnQJY2hlY2tzRmFpbGVkOwogCiB0eXBlZGVmIHZvaWQgKERJR0VTVF9J
bml0KSh2b2lkICopOwogdHlwZWRlZiB2b2lkIChESUdFU1RfVXBkYXRlKSh2b2lkICosIGNvbnN0
IHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KTsKQEAgLTEzOCw4ICsxNDAsMTMgQEAKICAJCWRpZ2Vz
dCA9IDA7CiAKIAlmYWlsZWQgPSAwOwotCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwg
InBxcnM6dHgiKSkgIT0gLTEpCisJY2hlY2tBZ2FpbnN0ID0gTlVMTDsKKwljaGVja3NGYWlsZWQg
PSAwOworCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwgImM6cHFyczp0eCIpKSAhPSAt
MSkKIAkJc3dpdGNoIChjaCkgeworCQljYXNlICdjJzoKKwkJCWNoZWNrQWdhaW5zdCA9IG9wdGFy
ZzsKKwkJCWJyZWFrOwogCQljYXNlICdwJzoKIAkJCU1ERmlsdGVyKCZBbGdvcml0aG1bZGlnZXN0
XSwgMSk7CiAJCQlicmVhazsKQEAgLTE3MywxMiArMTgwLDE5IEBACiAJCQkJZmFpbGVkKys7CiAJ
CQl9IGVsc2UgewogCQkJCWlmIChxZmxhZykKLQkJCQkJcHJpbnRmKCIlc1xuIiwgcCk7CisJCQkJ
CXByaW50ZigiJXMiLCBwKTsKIAkJCQllbHNlIGlmIChyZmxhZykKLQkJCQkJcHJpbnRmKCIlcyAl
c1xuIiwgcCwgKmFyZ3YpOworCQkJCQlwcmludGYoIiVzICVzIiwgcCwgKmFyZ3YpOwogCQkJCWVs
c2UKLQkJCQkJcHJpbnRmKCIlcyAoJXMpID0gJXNcbiIsCisJCQkJCXByaW50ZigiJXMgKCVzKSA9
ICVzIiwKIAkJCQkJICAgIEFsZ29yaXRobVtkaWdlc3RdLm5hbWUsICphcmd2LCBwKTsKKwkJCQlp
ZiAoY2hlY2tBZ2FpbnN0ICYmIHN0cmNtcChjaGVja0FnYWluc3QscCkpCisJCQkJeworCQkJCQlj
aGVja3NGYWlsZWQrKzsKKwkJCQkJaWYgKCFxZmxhZykKKwkJCQkJCXByaW50ZigiJXMiLCJbIEZh
aWxlZCBdIik7CisJCQkJfQorCQkJCXByaW50ZigiXG4iKTsKIAkJCX0KIAkJfSB3aGlsZSAoKisr
YXJndik7CiAJfSBlbHNlIGlmICghc2ZsYWcgJiYgKG9wdGluZCA9PSAxIHx8IHFmbGFnIHx8IHJm
bGFnKSkKQEAgLTE4Niw2ICsyMDAsOCBAQAogCiAJaWYgKGZhaWxlZCAhPSAwKQogCQlyZXR1cm4g
KDEpOworCWlmIChjaGVja3NGYWlsZWQgIT0gMCkKKwkJcmV0dXJuICgyKTsKIAogCXJldHVybiAo
MCk7CiB9CkBAIC0xOTgsMTIgKzIxNCwyMCBAQAogCXNpemVfdCBsZW4gPSBzdHJsZW4oc3RyaW5n
KTsKIAljaGFyIGJ1ZltIRVhfRElHRVNUX0xFTkdUSF07CiAKKwlhbGctPkRhdGEoc3RyaW5nLGxl
bixidWYpOwogCWlmIChxZmxhZykKLQkJcHJpbnRmKCIlc1xuIiwgYWxnLT5EYXRhKHN0cmluZywg
bGVuLCBidWYpKTsKKwkJcHJpbnRmKCIlcyIsIGJ1Zik7CiAJZWxzZSBpZiAocmZsYWcpCi0JCXBy
aW50ZigiJXMgXCIlc1wiXG4iLCBhbGctPkRhdGEoc3RyaW5nLCBsZW4sIGJ1ZiksIHN0cmluZyk7
CisJCXByaW50ZigiJXMgXCIlc1wiIiwgYnVmLCBzdHJpbmcpOwogCWVsc2UKLQkJcHJpbnRmKCIl
cyAoXCIlc1wiKSA9ICVzXG4iLCBhbGctPm5hbWUsIHN0cmluZywgYWxnLT5EYXRhKHN0cmluZywg
bGVuLCBidWYpKTsKKwkJcHJpbnRmKCIlcyAoXCIlc1wiKSA9ICVzIiwgYWxnLT5uYW1lLCBzdHJp
bmcsIGJ1Zik7CisJaWYgKGNoZWNrQWdhaW5zdCAmJiBzdHJjbXAoYnVmLGNoZWNrQWdhaW5zdCkp
CisJeworCQljaGVja3NGYWlsZWQrKzsKKwkJaWYgKCFxZmxhZykKKwkJCXByaW50ZigiJXMiLCIg
WyBmYWlsZWQgXSIpOworCX0KKwlwcmludGYoIlxuIik7CiB9CiAvKgogICogTWVhc3VyZXMgdGhl
IHRpbWUgdG8gZGlnZXN0IFRFU1RfQkxPQ0tfQ09VTlQgVEVTVF9CTE9DS19MRU4tYnl0ZSBibG9j
a3MuCg==
--e0cb4e887e21f2af110486568423--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimXdqm_MQqViaHQxsH8K3yQ_B3R2UTRZOYNzLhK>