#!/bin/sh
: ; exec klone $0 "$@"
; The above line allows not to embed the exact path of the klone executable
;;Skeleton of a typical klone script
(setq args (getopts "USAGE: %0 [options] file
prints the filesize in bytes of file, or 0 if file do not exists.
For output in K or M, the size is rounded up: a file of 1024 bytes is
reported as 1 for -k, 1025 to 2048 as 2"
("-k" () in-k? "outputs the size in Kilobytes, not bytes")
("-m" () in-m? "outputs the size in Megabytes, not bytes")
("-e" () trigger-err? "if cannot read file, return an error, not 0")
))
(setq file (getn args 0))
(if (not file) (getopts :usage))
(defun main (&aux
(size (get (file-stats file) 'size (if trigger-err?
'(fatal-error 1 "File not found: %0\n" file)
0
)))
)
(if in-m? (setq size (/ (+ size 1048575) 1048576))
in-k? (setq size (/ (+ size 1023) 1024))
)
(? size "\n")
)
(main)
;;; EMACS MODES
;;; Local Variables: ***
;;; mode:lisp ***
;;; End: ***
syntax highlighted by Code2HTML, v. 0.9.1