class TestConsole extends Console[Project]
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- TestConsole
- Console
- ScriptManager
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Instance Constructors
- new TestConsole(workspaceDir: String)
Type Members
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def _runAnalyzer(overlayCreators: LayerCreator*): Cpg
- Definition Classes
- Console
- def applyDefaultOverlays(cpg: Cpg): Cpg
- Definition Classes
- Console
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def close: Option[Project]
- Definition Classes
- Console
- def close(name: String): Option[Project]
- Definition Classes
- Console
- Annotations
- @Doc("Close project by name", scala.Predef.augmentString("|Close project. Resources are freed but the project remains on disk.\n |The project remains active, that is, calling `cpg` now raises an\n |exception. A different project can now be activated using `open`.\n |").stripMargin, "close(projectName)")
- def config: ConsoleConfig
- Definition Classes
- TestConsole → Console
- def console: Console[Project]
- Definition Classes
- Console
- implicit def cpg: Cpg
- Definition Classes
- Console
- Annotations
- @Doc("CPG of the active project", scala.Predef.augmentString("\n |Upon importing code, a project is created that holds\n |an intermediate representation called `Code Property Graph`. This\n |graph is a composition of low-level program representations such\n |as abstract syntax trees and control flow graphs, but it can be arbitrarily\n |extended to hold any information relevant in your audit, information\n |about HTTP entry points, IO routines, information flows, or locations\n |of vulnerable code. Think of Ocular and Joern as a CPG editors.\n |\n |In practice, `cpg` is the root object of the query language, that is, all\n |query language constructs can be invoked starting from `cpg`. For example,\n |`cpg.method.l` lists all methods, while `cpg.finding.l` lists all findings\n |of potentially vulnerable code.\n |").stripMargin, "cpg.method.l")
- val cpgGenerator: TestCpgGenerator
- Definition Classes
- TestConsole → Console
- def cpgs: Iterator[Cpg]
- Definition Classes
- Console
- def defaultProjectNameIfEmpty(name: String): Option[String]
- Attributes
- protected
- Definition Classes
- Console
- def delete: Option[Unit]
- Definition Classes
- Console
- def delete(name: String): Option[Unit]
- Definition Classes
- Console
- Annotations
- @Doc("Close and remove project from disk", "", "delete(projectName)")
- def deriveNameFromInputPath(inputPath: String): String
- Attributes
- protected
- Definition Classes
- Console
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def fixProjectNameAndComplainOnFix(name: String): String
- Attributes
- protected
- Definition Classes
- Console
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def importCode: ImportCode
- Definition Classes
- Console
- Annotations
- @Doc("Create new project from code", scala.Predef.augmentString("\n |importCode(<inputPath>, [projectName], [namespaces], [language])\n |\n |Type `importCode` alone to get a list of all supported languages\n |\n |Import code at `inputPath`. Creates a new project, generates a CPG,\n |and opens the project. Upon success, the CPG can be queried via the `cpg`\n |object. Default overlays are already applied to the newly created CPG.\n |Returns new CPG and ensures that `cpg` now refers to this new CPG.\n |\n |By default, `importCode` attempts to guess the source language of\n |the code you provide. You can also specify the source language\n |manually, by running `importCode.<language>`. For example, `importCode.c`\n |runs the C/C++ frontend.\n |\n |Type `importCode` alone to get an overview of all available language modules.\n |\n |Parameters:\n |\n |-----------\n |\n |inputPath: location on disk of the code to analyze. e.g., a directory\n |containing source code or a Java archive (JAR).\n |\n |projectName: a unique name used for project management. If this parameter\n |is omitted, the name will be derived from `inputPath`\n |\n |namespaces: the whitelist of namespaces to analyse. Specifying this\n |parameter is only effective if the language frontend supports it.\n |If the list is omitted or empty, namespace selection is performed\n |automatically via heuristics.\n |\n |language: the programming language which the code at `inputPath` is written in.\n |If `language` is empty, the language used is guessed by inspecting\n |the filename found and possibly by looking into the file/directory.\n |\n |").stripMargin, "importCode(\"example.jar\")")
- def importCpg(inputPath: String, projectName: String): Option[Cpg]
- Definition Classes
- Console
- Annotations
- @Doc("Create new project from existing CPG", scala.Predef.augmentString("\n |importCpg(<inputPath>, [projectName])\n |\n |Import an existing CPG. The CPG is stored as part\n |of a new project and blanks are filled in by analyzing the CPG.\n |If we find that default overlays have not been applied, these\n |are applied to the CPG after loading it.\n |\n |Parameters:\n |\n |inputPath: path where the existing CPG (in overflowdb format)\n |is stored\n |\n |projectName: name of the new project. If this parameter\n |is omitted, the path is derived from `inputPath`\n |").stripMargin, "importCpg(\"cpg.bin.zip\")")
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def open: Option[Project]
- Definition Classes
- Console
- def open(name: String): Option[Project]
- Definition Classes
- Console
- Annotations
- @Doc("Open project", scala.Predef.augmentString("\n |open([projectName])\n |\n |Opens the project named `name` and make it the active project.\n |If `name` is not provided, the active project is opened. If `name`\n |is a path, the project name is derived from and a deprecation\n |warning is printed.\n |\n |Upon completion of this operation, the CPG stored in this project\n |can be queried via `cpg`. Returns an optional reference to the\n |project, which is empty on error.\n |").stripMargin, "open(\"projectName\")")
- def project: Project
- Definition Classes
- Console
- Annotations
- @Doc("Currently active project", "", "project")
- def reload(name: String): Option[Project]
- Definition Classes
- Console
- def report(string: String): Unit
- Attributes
- protected
- Definition Classes
- Console
- def runCreator(creator: LayerCreator, overlayDirName: Option[String]): Unit
- Attributes
- protected
- Definition Classes
- Console
- def runScript(scriptName: String, parameters: Map[String, String], cpg: Cpg): Any
- Definition Classes
- ScriptManager
- def runScript(scriptName: String, parameters: Map[String, String], cpgFileName: String): Any
- Definition Classes
- ScriptManager
- def save: List[Project]
- Definition Classes
- Console
- Annotations
- @Doc("Write all changes to disk", scala.Predef.augmentString("\n |Close and reopen all loaded CPGs. This ensures\n |that changes have been flushed to disk.\n |\n |Returns list of affected projects\n |").stripMargin, "save")
- def scripts(): List[ScriptCollections]
- Definition Classes
- ScriptManager
- def switchWorkspace(pathName: String): Unit
- Definition Classes
- Console
- Annotations
- @Doc("Close current workspace and open a different one", scala.Predef.augmentString(" | By default, the workspace in $INSTALL_DIR/workspace is used.\n | This method allows specifying a different workspace directory\n | via the `pathName` parameter.\n | Before changing the workspace, the current workspace will be\n | closed, saving any unsaved changes.\n | If `pathName` points to a non-existing directory, then a new\n | workspace is first created.\n |").stripMargin, help.this.Doc.<init>$default$3)
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def undo: File
- Definition Classes
- Console
- Annotations
- @Doc("undo effects of analyzer", scala.Predef.augmentString("|Undo the last change, that is, unapply the last\n |overlay applied to the active project.\n |").stripMargin, "undo")
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def withScriptFile[T](scriptName: String)(f: (File) => IO[T]): IO[T]
- Attributes
- protected
- Definition Classes
- ScriptManager
- def workspace: WorkspaceManager[Project]
- Definition Classes
- Console
- Annotations
- @Doc("Access to the workspace directory", scala.Predef.augmentString("\n |All auditing projects are stored in a workspace directory, and `workspace`\n |provides programmatic access to this directory. Entering `workspace` provides\n |a list of all projects, indicating which code the project makes accessible,\n |whether the project is open, and which analyzers have been run to produce it.\n |Multiple projects can be open at any given time, however, only one project\n |can be active. Queries and edit-operations are executed on the active project\n |only.\n |\n |Operations\n |\n |----------\n |\n |`workspace` provides low-level access to the workspace directory. In most cases,\n |it is a better idea to use higher-level operations such as `importCode`, `open`,\n |`close`, and `delete`, which make use of workspace operations internally.\n |\n |* workspace.open([name]): open project by name and make it the active project.\n | If `name` is omitted, the last project in the workspace list is opened. If\n | the project is already open, this has the same effect as `workspace.setActiveProject([name])`\n |\n |* workspace.close([name]): close project by name. Does not remove the project.\n |\n |* workspace.remove([name]): close and remove project by name.\n |\n |* workspace.reset: create a fresh workspace directory, deleting the current\n |workspace directory\n |\n |").stripMargin, "workspace")
- var workspaceManager: WorkspaceManager[Project]
- Attributes
- protected
- Definition Classes
- Console
- def workspacePathName: String
- Attributes
- protected
- Definition Classes
- Console
- implicit object ConsoleImageViewer extends ImageViewer
- Definition Classes
- Console