Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Unified Diff: src/scripts/file_copy.py

Issue 445002: Switch to GPT partition format.
Patch Set: Address adlr comment Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/scripts/file_copy.py
diff --git a/src/scripts/file_copy.py b/src/scripts/file_copy.py
deleted file mode 100755
index 33a693b2f9d809741d2795e70da113157cedb5bf..0000000000000000000000000000000000000000
--- a/src/scripts/file_copy.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python
-
-# This program operates much like dd, but with two important differences:
-# 1. Many features lacking
-# 2. seek_bytes= param can specify seek offset in bytes, not block size
-
-import os
-import sys
-import time
-
-def parseNumber(numstr):
- if numstr.endswith("GB"):
- return int(numstr[:-2]) * 1000 * 1000 * 1000
- if numstr.endswith("MB"):
- return int(numstr[:-2]) * 1000 * 1000
- if numstr.endswith("kB"):
- return int(numstr[:-2]) * 1000
- if numstr.endswith("G"):
- return int(numstr[:-1]) * 1024 * 1024 * 1024
- if numstr.endswith("M"):
- return int(numstr[:-1]) * 1024 * 1024
- if numstr.endswith("K"):
- return int(numstr[:-1]) * 1024
- if numstr.endswith("b"):
- return int(numstr[:-1]) * 512
- if numstr.endswith("w"):
- return int(numstr[:-1]) * 2
- if numstr.endswith("c"):
- return int(numstr[:-1])
- if not numstr.isdigit():
- print >> sys.stderr, "Don't know how to parse number", numstr
- sys.exit(1)
- return int(numstr)
-
-def main(argv):
- arg_if = ""
- arg_of = ""
- arg_bs = 512
- arg_seek = -1
- arg_seek_bytes = -1
-
- for i in argv:
- if i.startswith("if="):
- arg_if=i[3:]
- elif i.startswith("of="):
- arg_of=i[3:]
- elif i.startswith("bs="):
- arg_bs=parseNumber(i[3:])
- elif i.startswith("seek="):
- arg_seek=int(i[5:])
- elif i.startswith("seek_bytes="):
- arg_seek_bytes=parseNumber(i[11:])
-
- if arg_seek >= 0 and arg_seek_bytes >= 0:
- print >> sys.stderr, "you can't specify seek= and seek_bytes="
- sys.exit(1)
-
- seek_bytes = 0
- if arg_seek >= 0:
- seek_bytes = arg_seek * arg_bs
- elif arg_seek_bytes >= 0:
- seek_bytes = arg_seek_bytes
-
- if_fd = 0
- of_fd = 1
- if len(arg_if) != 0:
- print >> sys.stderr, "opening for read", arg_if
- if_fd = os.open(arg_if, os.O_RDONLY)
- if len(arg_of) != 0:
- print >> sys.stderr, "opening for write", arg_of
- of_fd = os.open(arg_of, os.O_WRONLY | os.O_TRUNC | os.O_CREAT)
-
- if arg_seek_bytes > 0:
- print >> sys.stderr, "seeking to", seek_bytes, "bytes in output file"
- os.lseek(of_fd, seek_bytes, os.SEEK_SET)
-
- bytes_copied = 0
-
- t1 = time.time()
-
- buf = os.read(if_fd, arg_bs)
- while len(buf) > 0:
- bytes_written = 0
- while bytes_written < len(buf):
- bytes_written += os.write(of_fd, buf[bytes_written:])
- bytes_copied += bytes_written
- buf = os.read(if_fd, arg_bs)
-
- t2 = time.time()
-
- os.close(if_fd)
- os.close(of_fd)
-
- # print timing info
- print >> sys.stderr, 'copy %d bytes took %0.3f s' % (bytes_copied, t2 - t1)
- print >> sys.stderr, 'speed: %0.1f MB/s' % \
- ((bytes_copied / 1000000) / (t2 - t1))
-
-if __name__ == '__main__':
- main(sys.argv)

Powered by Google App Engine
This is Rietveld 408576698