"""Recursively copy a directory but skip undesired files and directories (CVS, backup files, pyc files, etc)""" import sys import os import shutil verbose = 1 debug = 0 def isclean(name): if name == 'CVS': return 0 if name == '.cvsignore': return 0 if name == '.DS_store': return 0 if name == '.svn': return 0 if name.endswith('~'): return 0 if name.endswith('.BAK'): return 0 if name.endswith('.pyc'): return 0 if name.endswith('.pyo'): return 0 if name.endswith('.orig'): return 0 return 1 def copycleandir(src, dst): for cursrc, dirs, files in os.walk(src): assert cursrc.startswith(src) curdst = dst + cursrc[len(src):] if verbose: print("mkdir", curdst) if not debug: if not os.path.exists(curdst): os.makedirs(curdst) for fn in files: if isclean(fn): if verbose: print("copy", os.path.join(cursrc, fn), os.path.join(curdst, fn)) if not debug: shutil.copy2(os.path.join(cursrc, fn), os.path.join(curdst, fn)) else: if verbose: print("skipfile", os.path.join(cursrc, fn)) for i in range(len(dirs)-1, -1, -1): if not isclean(dirs[i]): if verbose: print("skipdir", os.path.join(cursrc, dirs[i])) del dirs[i] def main(): if len(sys.argv) != 3: sys.stderr.write("Usage: %s srcdir dstdir\n" % sys.argv[0]) sys.exit(1) copycleandir(sys.argv[1], sys.argv[2]) if __name__ == '__main__': main() llow_regular Tcl is a high-level, general-purpose, interpreted, dynamic programming language. It was designed with the goal of being very simple but powerful.
summaryrefslogtreecommitdiffstats
path: root/doc/break.n
blob: b0350adcbc6528d19372a44e4249338103a64a66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
'\"
'\" Copyright (c) 1993-1994 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\" 
'\" RCS: @(#) $Id: break.n,v 1.6 2004/09/18 17:01:06 dkf Exp $
'\" 
.so man.macros
.TH break n "" Tcl "Tcl Built-In Commands"
.BS
'\" Note:  do not modify the .SH NAME line immediately below!
.SH NAME
break \- Abort looping command
.SH SYNOPSIS
\fBbreak\fR
.BE

.SH DESCRIPTION
.PP
This command is typically invoked inside the body of a looping command
such as \fBfor\fR or \fBforeach\fR or \fBwhile\fR.
It returns a \fBTCL_BREAK\fR code, which causes a break exception
to occur.
The exception causes the current script to be aborted
out to the innermost containing loop command, which then
aborts its execution and returns normally.
Break exceptions are also handled in a few other situations, such
as the \fBcatch\fR command, Tk event bindings, and the outermost
scripts of procedure bodies.
.SH EXAMPLE
Print a line for each of the integers from 0 to 5:
.CS
for {set x 0} {$x<10} {incr x} {
   if {$x > 5} {
      break
   }
   puts "x is $x"
}
.CE

.SH "SEE ALSO"
catch(n), continue(n), for(n), foreach(n), return(n), while(n)

.SH KEYWORDS
abort, break, loop