def __init__(self, sourcePath):

    # Command line modes
    self.resourceModes = [ "add-resource", "remove-resource", "update-resource" ]
    self.allModes      = [ "build", "update", "update-light", "add-tool", "version" ] + self.resourceModes

    # Setup help/usage descriptions
    self.modeDescriptions = {}
    self.modeDescriptions["build"]           = "Initialize gkno. This step is required to run any other operations."
    self.modeDescriptions["update"]          = "Update gkno itself, its internal tools, and any tracked organism resources."
    self.modeDescriptions["update-light"]    = "Update gkno, but none of its internal tools, or tracked organism resources."
    self.modeDescriptions["version"]         = "View gkno version in use, along with access to built-in tool versions."
    self.modeDescriptions["add-resource"]    = "Download resource data for an organism and track it for updated releases."
    self.modeDescriptions["add-tool"]        = "Add a previously omitted tool."
    self.modeDescriptions["remove-resource"] = "Delete resource data for an organism and stop tracking it."
    self.modeDescriptions["update-resource"] = "Update resource data for an organism."

    # General data members
    self.error                          = adminErrors()
    self.isRequested                    = False
    self.isVerbose                      = False
    self.mode                           = ''
    self.userSettings                   = {}
    self.userSettings['compiled tools'] = []

    # Commonly used path names
    self.sourcePath    = sourcePath 
    self.resourcesPath = sourcePath + "/resources/"
    self.toolsPath     = sourcePath + "/tools/"
    self.logsPath      = sourcePath + "/logs/"
    
    # Import user settings from file (or initialize defaults if file doesn't exist)
    self.importUserSettings()

    # Make sure our common directories exist
    self.ensureMakeDir(self.resourcesPath)
    self.ensureMakeDir(self.toolsPath)
    self.ensureMakeDir(self.logsPath)

    # Keep track of which tools successfully compiled.
    self.builtTools = {}
    self.allBuilt   = True

  # -------------------------------------------
  # Main entry point for running admin mode
  # -------------------------------------------

  # Verify built status on entry, run requested mode, 
  # and export user settings to file on successful exit.
dataset/ETHPy150Open gkno/gkno_launcher/src/gkno/adminUtils.py/adminUtils.__init__/original