Mercurial > hg > Members > kent > dotfiles
view symlink.py @ 16:457d7aa2cb2f default tip
from oleander PowerBookG4.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Mar 2010 16:58:46 +0900 |
parents | 0f43fb312bd6 |
children |
line wrap: on
line source
#!/usr/bin/env python # vim:fileencoding=utf-8 import re import os import sys import configparser home = os.environ['HOME'] etcdir = os.getcwd() dir = re.match( home+"/(.*)", etcdir).group(1) force = False def main(): # read configuration file config = configparser.ConfigParser() config.read( 'install.cfg') for target in sys.argv[1:]: value = config.get('InstallFiles', target) (linkname, *opts) = value.split(","); hard = False for opt in opts: if opt=="HARD": hard = True print(linkname, hard) #makelink(target, linkname, hard) ### make symbolic or hard link dst0 relating with src0 def makelink(target0, linkname0=None, hard=False): # correct filename of source and destination if linkname0==None: linkname0 = "."+target0 target = dir+"/"+target0 linkname = home+"/"+linkname0 # check destination file if os.path.exists(linkname): if force: os.remove(linkname) else: print("file "+linkname+" already existed!") return # make symbolic link print(linkname+" => "+target) if hard: os.link(target, linkname) else: os.symlink(src, linkname) main() ### てすとるーちん ### def listingFromArgs(): del sys.argv[0] for file in sys.argv: makeSymlink(file) def listingFromDir(): files = os.listdir(".") for file in files: correctFilename(file) def correctFilename(filename): result = re.match( "DoT-(.*)", filename); if result!=None: dst = result.group(1) print(filename+" => "+dst) os.rename(filename, dst) #listingFromDir() #listingFromArgs() # test #master = [10, 20, 30] #listing( master, 20 ) #listing( master, 20 ) def listing(a, b): i=0; print("b = "+str(b)) print("len(a) = "+str(len(a))) while i<len(a): print( "a["+str(i)+"] = "+str(a[i])) a[i] = a[i] + 5 i = i+1