001 /* 002 003 $Id: ConfigManager.java,v 1.2 2003/05/08 10:34:22 culdesac Exp $ 004 005 */ 006 007 package sharpster.daemon.filemanagement; 008 009 import sharpster.common.*; 010 import java.io.*; 011 import java.util.*; 012 013 public class ConfigManager { 014 public static boolean writeFileConfig(SharedFile file, File iofile) { 015 try { 016 File dir = iofile.getParentFile(); 017 File cfgfile = new File(dir,"sharpster.files"); 018 LinkedList buffer = new LinkedList(); 019 boolean added = false; 020 String line; 021 022 if(cfgfile.exists()) { 023 BufferedReader in = new BufferedReader(new FileReader(cfgfile)); 024 String repository = in.readLine(); 025 while((line=in.readLine())!=null) { 026 String[] params = line.split("(/)"); 027 if(params[0].equals(iofile.getName())) { 028 line = iofile.getName() + "/" + file.getVersion() + "/"; 029 if(file.getBody().isBinary()) line += "binary"; 030 else line += "text"; 031 added = true; 032 } 033 buffer.add(new String(line)); 034 } 035 in.close(); 036 } 037 038 BufferedWriter out = new BufferedWriter(new FileWriter(cfgfile)); 039 out.write(file.getPathInCVS()); 040 out.newLine(); 041 for(int i=0;i<buffer.size();i++) { 042 out.write((String)buffer.get(i)); 043 out.newLine(); 044 } 045 if(!added) { 046 line = iofile.getName() + "/" + file.getVersion() + "/"; 047 if(file.getBody().isBinary()) line += "binary"; 048 else line += "text"; 049 out.write(line); 050 out.newLine(); 051 } 052 053 out.close(); 054 } 055 catch(Exception e) { 056 e.printStackTrace(); 057 return false; 058 } 059 060 return true; 061 } 062 063 public static SharedFile readFileConfig(String filename, String workingDirectory) { 064 return null; 065 } 066 067 public static SharedFile translatePath(String path) { 068 String repository, filename, temp, cvsroot; 069 SharedFile file = null; 070 071 File cvsFilePath = new File(path); 072 if(!cvsFilePath.exists()) return null; 073 074 try { 075 File cvsFileDir = cvsFilePath.getParentFile(); 076 077 filename = cvsFilePath.getName(); 078 079 FileReader fr = new FileReader(cvsFileDir.getAbsolutePath()+ 080 File.separator+"sharpster.files"); 081 BufferedReader inFile = new BufferedReader(fr); 082 083 repository = inFile.readLine(); 084 085 while((temp=inFile.readLine())!=null) { 086 String[] params = temp.split("(/)"); 087 if(params[0].equals(filename)) { 088 file = new SharedFile(); 089 file.setFileName(filename); 090 file.setPathInCVS(repository); 091 file.setVersion(params[1]); 092 break; 093 } 094 } 095 096 inFile.close(); 097 } 098 catch(Exception e) { 099 e.printStackTrace(); 100 return null; 101 } 102 103 return file; 104 } 105 }