From fd4615a8c3b83e64d35d92d98cbf6cbde2da021d Mon Sep 17 00:00:00 2001 From: HappyZ Date: Fri, 14 Dec 2018 16:26:33 -0600 Subject: [PATCH] improved md5sum function --- python_api/libDPT.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/python_api/libDPT.py b/python_api/libDPT.py index 05db8ab..a6c8d2f 100644 --- a/python_api/libDPT.py +++ b/python_api/libDPT.py @@ -104,19 +104,35 @@ class DPT(): resp = self.diagnosis_write("rm {}".format(fp)) return not (resp == "") - def diagnosis_md5sum_file(self, fp): + def diagnosis_md5sum_file(self, fp, isPartition=False): ''' get md5sum of a file ''' if not self.diagnosis_isfile(fp): return "" - resp = self.diagnosis_write("md5sum {}".format(fp)).splitlines() + if isPartition: + fsize = self.diagnosis_get_file_size(fp) + cmd = "dd if={0} bs={1} count=1 | md5sum".format(fp, fsize) + resp = self.diagnosis_write(cmd).splitlines() + else: + resp = self.diagnosis_write("md5sum {}".format(fp)).splitlines() try: return resp[1].split()[0] except BaseException as e: self.err_print(str(e)) return "" + def diagnosis_get_file_size(self, fp): + ''' + linux to get file size + ''' + cmd = "stat -c%%s {0}".format(fp) + try: + return int(self.diagnosis_write(cmd).splitlines()[1]) + except BaseException as e: + self.err_print(str(e)) + return -1 + def diagnosis_isfile(self, fp): ''' check if file exists given file path @@ -144,7 +160,7 @@ class DPT(): mkdir -p folder ''' if self.diagnosis_isfolder(folder): - self.info_print("{} already exist".format(folder)) + self.info_print("{} already exist, we are fine".format(folder)) return True if not self.diagnosis_write('mkdir -p {}'.format(folder)): self.err_print('Failed to create folder {}'.format(folder))