net.i2p.router.startup
Class WorkingDir

java.lang.Object
  extended by net.i2p.router.startup.WorkingDir

public class WorkingDir
extends java.lang.Object

Get a working directory for i2p. For the location, first try the system property i2p.dir.config Next try $HOME/.i2p on linux or %APPDATA%\I2P on Windows. If the dir exists, return it. Otherwise, attempt to create it, and copy files from the base directory. To successfully copy, the base install dir must be the system property i2p.dir.base or else must be in $CWD. If I2P was run from the install directory in the past, and migrateOldData = true, copy the necessary data files (except i2psnark/) over to the new working directory. Otherwise, just copy over a limited number of files over. Do not ever copy or move the old i2psnark/ directory, as if the old and new locations are on different file systems, this could be quite slow. Modify some files while copying, see methods below. After migration, the router will run using the new directory. The wrapper, however, must be stopped and restarted from the new script - until then, it will continue to write to wrapper.log* in the old directory.


Constructor Summary
WorkingDir()
           
 
Method Summary
static boolean copy(java.io.File src, java.io.File targetDir)
          Recursive copy a file or dir to a dir
static boolean copyFile(java.io.File src, java.io.File dst)
           
static java.lang.String getWorkingDir(java.util.Properties envProps, boolean migrateOldConfig)
          Only call this once on router invocation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WorkingDir

public WorkingDir()
Method Detail

getWorkingDir

public static java.lang.String getWorkingDir(java.util.Properties envProps,
                                             boolean migrateOldConfig)
Only call this once on router invocation. Caller should store the return value for future reference.


copy

public static final boolean copy(java.io.File src,
                                 java.io.File targetDir)
Recursive copy a file or dir to a dir

Parameters:
src - file or directory, need not exist
targetDir - the directory to copy to, will be created if it doesn't exist
Returns:
true for success OR if src does not exist

copyFile

public static boolean copyFile(java.io.File src,
                               java.io.File dst)
Parameters:
src - not a directory, must exist
dst - not a directory, will be overwritten if existing
Returns:
true if it was copied successfully