changeset 7:0f43fb312bd6

update symlink.py
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Sat, 30 May 2009 01:26:54 +0900
parents ea2aed24ddd0
children 14ed303f82b7
files fetchmailrc install.cfg procmailrc symlink.py
diffstat 4 files changed, 55 insertions(+), 81 deletions(-) [+]
line wrap: on
line diff
--- a/fetchmailrc	Mon May 25 11:45:50 2009 +0900
+++ b/fetchmailrc	Sat May 30 01:26:54 2009 +0900
@@ -8,5 +8,5 @@
     protocol imap
     user "kent"
     ssl
-    #keep
+    keep
 
--- a/install.cfg	Mon May 25 11:45:50 2009 +0900
+++ b/install.cfg	Sat May 30 01:26:54 2009 +0900
@@ -3,21 +3,28 @@
 ETCDIR: a
 
 [InstallFiles]
-
-# rcファイル指定ができない or したくないもの
-Xdefaults:	SYM
-xinitrc:	SYM
-hgrc:		SYM
-screenrc:	SYM
-bcrc:		SYM
-dir_colors:	SYM
-#muttrc:		SYM
-#procmailrc:	SYM
-vimrc:		SYM
-zshenv:		SYM
-zshrc:		SYM
-
-#fetchmailrc:	LNK
+# filename	[dir/]linkname[,HARD|SYM]
+screenrc:		.screenrc
+bcrc:			.bcrc
+dir_colors:		.dir_colors
+fetchmailrc:	.fetchmailrc,HARD
+muttrc:			.muttrc
+vimrc:			.vimrc
+zshenv:			.zshenv
+zshrc:			.zshrc
+Xdefaults:		.Xdefault
+xinitrc:		.xinitrc
+hgrc:			.hgrc
+bash_profile:	.bash_profile
+bashrc:			.bashrc
+emacs:			.emacs
+inputrc:		.inputrc
+jvimrc:			.jvimrc
+login:			.login
+login_conf:		.login_conf
+profile:		.profile
+shrc:			.shrc
+tcshrc:			.tcshrc
 
 # 環境変数でファイル指定可能なもの
 #screenrc:		ENV:SCREENRC
--- a/procmailrc	Mon May 25 11:45:50 2009 +0900
+++ b/procmailrc	Sat May 30 01:26:54 2009 +0900
@@ -6,21 +6,6 @@
 #JUNK=$HOME/Mail/junk
 
 
-# GCCメーリングリスト
-:0 H
-* gcc
-* gnu.org
-GCC/
-
-# 琉大情報工adminメール
-:0 H
-* admin-server@ie.u-ryukyu.ac.jp
-ie-admin/
-
-# 河野研メーリングリスト
-:0 H
-* concurrency@cr.ie.u-ryukyu.ac.jp
-concurrency/
 
 :0
 * .*
--- a/symlink.py	Mon May 25 11:45:50 2009 +0900
+++ b/symlink.py	Sat May 30 01:26:54 2009 +0900
@@ -4,7 +4,7 @@
 import re
 import os
 import sys
-import ConfigParser
+import configparser
 
 home = os.environ['HOME']
 etcdir = os.getcwd()
@@ -13,64 +13,46 @@
 
 def main():
 	# read configuration file
-	config = ConfigParser.ConfigParser()
+	config = configparser.ConfigParser()
 	config.read( 'install.cfg')
-	opts = config.items('InstallFiles', 0)
+
+	for target in sys.argv[1:]:
+
+		value = config.get('InstallFiles', target)
+		(linkname, *opts) = value.split(",");
 
-	# loop all options
-	for opt in opts:
-		value = opt[1].split(':')
-		if value[0] == "SYM":
-			if len(value) > 1:
-				makeSymlink(opt[0], value[1])
-			else:
-				makeSymlink(opt[0])
-		elif value[0] == "LNK":
-			if len(value) > 1:
-				makeHardlink(opt[0], value[1])
-			else:
-				makeHardlink(opt[0])
+		hard = False
+		for opt in opts:
+			if opt=="HARD": hard = True
+
+		print(linkname, hard)
+
+		#makelink(target, linkname, hard)
 
 
-### make symbolic link dst0 relating with src0
-def makeSymlink(src0, dst0=None):
+### make symbolic or hard link dst0 relating with src0
+def makelink(target0, linkname0=None, hard=False):
 	# correct filename of source and destination
-	if dst0==None:
-		dst0 = "."+src0
-	src = dir+"/"+src0
-	dst = home+"/"+dst0
+	if linkname0==None:
+		linkname0 = "."+target0
+	target = dir+"/"+target0
+	linkname = home+"/"+linkname0
 
 	# check destination file
-	if os.path.exists(dst):
+	if os.path.exists(linkname):
 		if force:
-			os.remove(dst)
+			os.remove(linkname)
 		else:
-			print "file "+dst+" already existed!"
+			print("file "+linkname+" already existed!")
 			return
 
 	# make symbolic link
-	print dst+" => "+src
-	os.symlink(src, dst)
-
-### make hardlink dst0 relating with src0
-def makeHardlink(src0, dst0=None):
-	# correct filename of source and destination
-	if dst0==None:
-		dst0 = "."+src0
-	src = src0
-	dst = home+"/"+dst0
+	print(linkname+" => "+target)
+	if hard:
+		os.link(target, linkname)
+	else:
+		os.symlink(src, linkname)
 
-	# check destination file
-	if os.path.exists(dst):
-		if force:
-			os.remove(dst)
-		else:
-			print "file "+dst+" already existed!"
-			return
-
-	# make symbolic link
-	print dst+" => "+src
-	os.link(src, dst)
 
 main()
 
@@ -94,7 +76,7 @@
 	result = re.match( "DoT-(.*)", filename);
 	if result!=None:
 		dst = result.group(1)
-		print filename+" => "+dst
+		print(filename+" => "+dst)
 		os.rename(filename, dst)
 	
 #listingFromDir()
@@ -109,10 +91,10 @@
 #listing( master, 20 )
 def listing(a, b):
 	i=0;
-	print "b = "+str(b)
-	print "len(a) = "+str(len(a))
+	print("b = "+str(b))
+	print("len(a) = "+str(len(a)))
 	while i<len(a):
-		print "a["+str(i)+"] = "+str(a[i])
+		print( "a["+str(i)+"] = "+str(a[i]))
 		a[i] = a[i] + 5
 		i = i+1