net.i2p.router.startup

## Class PortableWorkingDir

- java.lang.Object
- - net.i2p.router.startup.PortableWorkingDir

-     public class PortableWorkingDir
      extends Object

  Get a relative working directory for i2p based upon properties by parent process. This is used together with the Browser Bundle. This class is slim/light because the initial config is deployed by I2PCtrl.js if the config directory is missing from the relative directory it's using, and if any migrations is needed, I2PCtrl.js will do that part. In the future BB might have flavors or plugins whichs would be apps normally distributed with default install of i2p, and other plugins available. I2PCtrl.js will manage these since it's closer to the end-user via browser options and GUI. Just FYI: In the context of a BB: On OSX it has to look 3 paths up, but for the other two, only one. OSX Path: I2PBrowser.app/Contents/MacOS/firefox OSX => ../../../I2PBrowser-Data/I2P Linux/Windows => ../I2PBrowser-Data/I2P ---- However, The javascript plugin I2PCtrl.js is setting correct working and base directory so this class can be quite dumb. Working directory is where we have most of our config, and keys. Base directory is where we usually find the wrapper config (on normal installs) together with jars and static files in an I2P installation. Portable uses both, with the key usage being that I2P is extracted from (whatever) to a base directory, but still has it's config separate in the working directory.
  Version:
    0.2

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PortableWorkingDir()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static String` | `getWorkingDir(Properties envProps)` 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

    - #### PortableWorkingDir

          public PortableWorkingDir()

  - ### Method Detail

    - #### getWorkingDir

          public static String getWorkingDir(Properties envProps)

      Only call this once on router invocation. Caller should store the return value for future reference.
      Parameters:
        `envProps` - environment properties