# HG changeset patch # User Edho Prima Arief # Date 1310200417 -25200 # Node ID 08d5f602399852118eee4b5f7f397108a523da7b # Parent 06fd72a78cc147d2d79b2433d5cddc28e171254c Replace checksum calculator with python version. diff -r 06fd72a78cc1 -r 08d5f6023998 bin/cek --- a/bin/cek Sun Jun 19 12:53:42 2011 +0700 +++ b/bin/cek Sat Jul 09 15:33:37 2011 +0700 @@ -2,7 +2,7 @@ bn() { basename "/$*"; } #cs() { cksfv -- "$@"; } -cs() { cek.pl "$@"; } +cs() { cek.py "$@"; } if [ "$#" -lt 1 ]; then cat < 0) { - printf(" [ERR%02d]", $crc32[0]); - } - printf("\n"); -} diff -r 06fd72a78cc1 -r 08d5f6023998 bin/cek.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/cek.py Sat Jul 09 15:33:37 2011 +0700 @@ -0,0 +1,22 @@ +#!/usr/bin/env python + +import zlib, os, sys + +def get_file_crc32(filename): + block_size = 1*2**20 + return_code = 0 + file_crc32 = 0 + file_digest = 0 + file_handle = open(filename, "rb") + if return_code == 0: + file_block = file_handle.read(block_size) + while file_block: + file_digest = zlib.crc32(file_block, file_digest) + file_block = file_handle.read(block_size) + file_handle.close() + file_digest = file_digest & 0xffffffff + return "%08X" % file_digest + +if __name__ == "__main__": + for file in sys.argv[1:]: + print "%s %s" % (file, get_file_crc32(file)) diff -r 06fd72a78cc1 -r 08d5f6023998 bin/putcrc --- a/bin/putcrc Sun Jun 19 12:53:42 2011 +0700 +++ b/bin/putcrc Sat Jul 09 15:33:37 2011 +0700 @@ -24,7 +24,7 @@ dirname="$(dirname "$(safe_path "${file}")")" myfile="$(printf "%s\n" "${filename%.*}" | sed -e 's/\([^]]\)$/\1 /')" myext="${filename##*.}"; if [ "${myext}" = "${filename}" ]; then myext=""; else myext=".${myext}"; fi - crc=$(cek.rb "$(safe_path "${file}")" | tail -1 | sed -e 's/.*\([A-F0-9]\{8\}\)$/\1/') + crc=$(cek.py "$(safe_path "${file}")" | tail -1 | sed -e 's/.*\([A-F0-9]\{8\}\)$/\1/') mv -- "${file}" "${dirname}/${myfile}[${crc}]${myext}" && printf "%s => %s\n" "${file}" "${myfile}[${crc}]${myext}" else printf "%s\n" "${file} is not a file or unreadable"