-
Notifications
You must be signed in to change notification settings - Fork 0
OpenWrap Shell
#The OpenWrap shell (o.exe)
The shell is responsible for finding a bootstrap class in a package that will handle the actual execution of commands, optionally downloading missing packages as needed.
To do this, the shell scans the current directory and it's parents for a child directory containing .wrap files. When one is found, the shell attemps to locate the openwrap package. If you re-use the bootstrapper, you can specify your own entry-point package by name.
The shell will then resolve any dependent packages, and select whatever latest version of each is specified. It's important to note that the shell ignores any dependency version identifiers and always picks the latest version.
Once all packages are loaded, assemblies in each of the scanned folders will be scanned for a type with a name ending in Runner containing one of two methods.
The first is a static method accepting an IDictionary<string,object> that describes the current environment (location of the system repository, current directory, command line and bootstrapped packages). This is what OpenWrap 1.1 uses.
The second is a static method accepting an array of strings and returning an int. This is what OpenWrap 1.0 used, and is no longer the recommended entrypoint to use. In this mode, the shell also tries to locate a SetSystemRepositoryPath static method taking the full path to the system repository path (as defined by the -SystemRepositoryPath input, see below).
As part of this loading process, all assemblies in the dependency chain will be pre-loaded in the LoadFrom context.
The OpenWrap shell lets you specify certain command inputs.
-InstallHref http://server.com
Specifies the name of the server used for retrieving initial packages at installation time.
Specifies the system repository to use. Usually used for testing the behavior of the shell without uninstalling your system repository.
-ProxyHref http://proxy:port
The shell normally uses the system-defined proxy to install itself. If you need a custom proxy, you can use the ProxyHref input to change the proxy address.
The username to use for the proxy. If missing, the credentials for the current user are used.
The password to use for the proxy.
Specifies what to do if the shell is not installed. Accepts the following value:
- None: Does nothing and uses the current executable
- Install: Installs the shell to the default location
- UseCurrent: Uses the shell from the current location and registers it.
This is when your system repository has a version of OpenWrap that stopped working and you want to force a redownload and an overwrite of any package you have in your system repository. Use for when things go bad.
Enables the system repository version of OpenWrap to be used instead of the project repository (if present).