blob: 92d6fb761878bfcfd4423c7df04b005e736ae9c1 [file] [log] [blame]
public class BigInteger {
public BigInteger(int i, java.lang.Byte[] arr) {}
public java.lang.String toString(int radix) {return "";}
}
public class NoSuchAlgorithmException extends java.lang.Exception {
}
public class MessageDigest {
public static MessageDigest getInstance(java.lang.String algorithm) throws NoSuchAlgorithmException {
return new MessageDigest();
}
public java.lang.Byte[] digest() {return new java.lang.Byte[0];}
public void update(java.lang.Byte[] input, int offset, int len) {}
}
public class hash extends groovy.lang.Script {
public static void main(java.lang.String[] args) {
new hash(new groovy.lang.Binding(args)).run();
}
public java.lang.Object run() {
int KB = 1024;
int MB = 1024 * KB;
java.io.File f = new java.io.File(this.getBinding().getProperty("args")[0]);
if (!f.exists() || !f.isFile()){
println("Invalid file " + java.lang.String.valueOf(f) + " provided");
println("Usage: groovy sha1.groovy <file_to_hash>");
}
final MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
long start = java.lang.System.currentTimeMillis();
org.codehaus.groovy.runtime.DefaultGroovyMethods.eachByte(f, MB, new groovy.lang.Closure<java.lang.Object>(this, this) {
public void doCall(java.lang.Byte[] buf, int bytesRead) {
messageDigest.update(buf, 0, bytesRead);
}
});
java.lang.String sha1Hex = org.codehaus.groovy.runtime.DefaultGroovyMethods.padLeft(new BigInteger(1, messageDigest.digest()).toString(16), 40, "0");
long delta = java.lang.System.currentTimeMillis() - start;
println(sha1Hex + " took " + java.lang.String.valueOf(delta) + " ms to calculate");
return null;
}
public hash(groovy.lang.Binding binding) {
super(binding);
}
public hash() {
super();
}
}