이클립스를 업데이트한 후에 남아있는 이전 버젼의 플러그인을 삭제해주는 파이썬 코드입니다.
간단하게 만든거라 이전 버젼의 플러그인이 여러개인 경우 한번에 지워주지는 않습니다.
이 부분은 search_duplicated_plugins()를 수정하면 됩니다.
실행은 플러그인 디렉토리를 인자로 넣어주면 됩니다.
간단하게 만든거라 이전 버젼의 플러그인이 여러개인 경우 한번에 지워주지는 않습니다.
이 부분은 search_duplicated_plugins()를 수정하면 됩니다.
''' Created on Feb 27, 2012 @author: silent ''' import os import sys def search_duplicated_plugins(srcdir): print "Searching duplicated plugins in " + srcdir result = [] try: filelist = os.listdir(srcdir) filelist.sort() prevfile = filelist[len(filelist) - 1] for file in filelist: if file.rsplit('_', 1)[0] == prevfile.rsplit('_', 1)[0]: result.append(prevfile) prevfile = file except: print '%s access denied.' % srcdir return result def confirm_to_delete(dupfiles): for file in dupfiles: print file print "-" * 80 print " Total %d files(dirs)." % len(dupfiles) if len(dupfiles) == 0: return False yn = raw_input(" Continue to delete? (y/n) ") if yn == 'Y' or yn == 'y': return True return False def delete_files(srcdir, dupfiles): for file in dupfiles: filepath = srcdir + '/' + file if os.path.isdir(filepath): delete_files(filepath, os.listdir(filepath)) if os.path.exists(filepath): os.removedirs(filepath) else: os.remove(filepath) if __name__ == '__main__': if len(sys.argv) <= 1: f = sys.argv[0].split('/') print "Usage: " + f[len(f) - 1] + " eclipse_plugins_directory_path" sys.exit() srcdir = sys.argv[1] dupfiles = search_duplicated_plugins(srcdir) ret = confirm_to_delete(dupfiles) if ret: delete_files(srcdir, dupfiles)
실행은 플러그인 디렉토리를 인자로 넣어주면 됩니다.
python remove_old_plugins.py eclipse_plugins_directory_path
'Eclipse' 카테고리의 다른 글
맥북프로 레티나에서 이클립스를 좀 더 잘 보이게 하기 (0) | 2013.01.02 |
---|---|
이클립스 SWT로 외부 프로그램 실행하기 (0) | 2010.11.18 |
PDE 소스 연동 (1) | 2010.10.05 |