symbian-qemu-0.9.1-12/python-2.6.1/Demo/scripts/mkrcs.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 #! /usr/bin/env python
       
     2 
       
     3 # A rather specialized script to make sure that a symbolic link named
       
     4 # RCS exists pointing to a real RCS directory in a parallel tree
       
     5 # referenced as RCStree in an ancestor directory.
       
     6 # (I use this because I like my RCS files to reside on a physically
       
     7 # different machine).
       
     8 
       
     9 import os
       
    10 
       
    11 def main():
       
    12     rcstree = 'RCStree'
       
    13     rcs = 'RCS'
       
    14     if os.path.islink(rcs):
       
    15         print '%r is a symlink to %r' % (rcs, os.readlink(rcs))
       
    16         return
       
    17     if os.path.isdir(rcs):
       
    18         print '%r is an ordinary directory' % (rcs,)
       
    19         return
       
    20     if os.path.exists(rcs):
       
    21         print '%r is a file?!?!' % (rcs,)
       
    22         return
       
    23     #
       
    24     p = os.getcwd()
       
    25     up = ''
       
    26     down = ''
       
    27     # Invariants:
       
    28     # (1) join(p, down) is the current directory
       
    29     # (2) up is the same directory as p
       
    30     # Ergo:
       
    31     # (3) join(up, down) is the current directory
       
    32     #print 'p =', repr(p)
       
    33     while not os.path.isdir(os.path.join(p, rcstree)):
       
    34         head, tail = os.path.split(p)
       
    35         #print 'head = %r; tail = %r' % (head, tail)
       
    36         if not tail:
       
    37             print 'Sorry, no ancestor dir contains %r' % (rcstree,)
       
    38             return
       
    39         p = head
       
    40         up = os.path.join(os.pardir, up)
       
    41         down = os.path.join(tail, down)
       
    42         #print 'p = %r; up = %r; down = %r' % (p, up, down)
       
    43     there = os.path.join(up, rcstree)
       
    44     there = os.path.join(there, down)
       
    45     there = os.path.join(there, rcs)
       
    46     if os.path.isdir(there):
       
    47         print '%r already exists' % (there, )
       
    48     else:
       
    49         print 'making %r' % (there,)
       
    50         makedirs(there)
       
    51     print 'making symlink %r -> %r' % (rcs, there)
       
    52     os.symlink(there, rcs)
       
    53 
       
    54 def makedirs(p):
       
    55     if not os.path.isdir(p):
       
    56         head, tail = os.path.split(p)
       
    57         makedirs(head)
       
    58         os.mkdir(p, 0777)
       
    59 
       
    60 if __name__ == "__main__":
       
    61     main()