diff options
author | Lars Wirzenius <liw@liw.fi> | 2009-10-31 17:07:34 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2009-10-31 17:07:34 +0200 |
commit | 5c91474753b9aeca827d2a858932697ff0e22825 (patch) | |
tree | e3a70e51199e7af8b4e7253e6ebd0ed3ed8f6a53 | |
parent | 96ead3f11003289525155f7c48da6223ca2838ca (diff) | |
download | extrautils-5c91474753b9aeca827d2a858932697ff0e22825.tar.gz |
Removed create-file, since coreutils now contains truncate.
-rwxr-xr-x | create-file | 89 | ||||
-rw-r--r-- | create-file.1 | 45 |
2 files changed, 0 insertions, 134 deletions
diff --git a/create-file b/create-file deleted file mode 100755 index dd41073..0000000 --- a/create-file +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/python -# -# create-file -- create a file full of zeroes -# Copyright (C) 2009 Lars Wirzenius -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - - -import optparse -import os - - -def parse_size(size): - sizes = ( - ("k", 1000), - ("m", 1000**2), - ("g", 1000**3), - - ("kb", 1000), - ("mb", 1000**2), - ("gb", 1000**3), - - ("kib", 1024), - ("mib", 1024**2), - ("gib", 1024**3), - ) - size = size.lower() - for suffix, x in sizes: - if size.endswith(suffix): - amount = int(size[:-len(suffix)].strip()) - return amount * x - return int(size.strip()) - - -def parse_args(): - parser = optparse.OptionParser() - - parser.epilog = ("SIZE is a size. Default is in bytes, use suffixes " - "kB/MB/GB for multiples of 1000, KiB/MiB/GiB for " - "multiples of 1024. Only integers supported.") - - parser.add_option("--sparse", action="store_true", - help="create a sparse file") - - parser.add_option("--size", metavar="SIZE", default="0", - help="create a file of size SIZE") - - options, filenames = parser.parse_args() - options.size = parse_size(options.size) - - return options, filenames - - -def create_file(filename, options): - fd = os.open(filename, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0666) - if options.sparse: - if options.size > 0: - os.lseek(fd, options.size - 1, os.SEEK_SET) - os.write(fd, "\0") - else: - bytes = options.size - data = "\0" * 1024**2 - while bytes >= len(data): - os.write(fd, data) - bytes -= len(data) - if bytes > 0: - os.write(fd, data[:bytes]) - os.close(fd) - - -def main(): - options, filenames = parse_args() - for filename in filenames: - create_file(filename, options) - - -if __name__ == "__main__": - main() diff --git a/create-file.1 b/create-file.1 deleted file mode 100644 index 4bdfea7..0000000 --- a/create-file.1 +++ /dev/null @@ -1,45 +0,0 @@ -.\" create-file.1 - manual page for the create-file command -.\" Copyright (C) 2009 Lars Wirzenius -.\" -.\" This program is free software: you can redistribute it and/or modify -.\" it under the terms of the GNU General Public License as published by -.\" the Free Software Foundation, either version 3 of the License, or -.\" (at your option) any later version. -.\" -.\" This program is distributed in the hope that it will be useful, -.\" but WITHOUT ANY WARRANTY; without even the implied warranty of -.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.\" GNU General Public License for more details. -.\" -.\" You should have received a copy of the GNU General Public License -.\" along with this program. If not, see <http://www.gnu.org/licenses/>. -.\" -.TH CREATE-FILE 1 -.SH NAME -create-file \- create a file full of zero bytes -.SH SYNOPSIS -.B create-file -.RB [ -h ] -.RB [ --help ] -.RB [ --sparse ] -.RB [ --size =\fISIZE ] -.RI [ filename ]... -.SH DESCRIPTION -.B create-file -creates a file full of zero bytes (0x00, NUL). -.SH OPTIONS -.TP -.BR -h ", " --help -Show a short help message. -.TP -.B --sparse -Create a sparse file, which does not allocate disk blocks. -.TP -.BR --size =\fISIZE -Create a file of -.I SIZE -bytes. -The size may be have a suffix to indicate kilobyte (K, KB), megabyte (M, MB), -or gigabyte (G, GB), or power-of-two multipliers for kibibyte (KiB), -mebibyte (MiB), or gibibyte (GiB). -All suffixes are case-insensitive. |