dotnet-core/tools/cli-bootstrap/README.md

85 lines
3.5 KiB
Markdown
Raw Normal View History

2016-11-04 01:10:32 +01:00
CLI.BOOTSTRAP(1)
### NAME
.NET CLI Bootstrapping Tool - A tool to help you bootstrap the .NET Command Line Tool on unsupported platforms.
2016-11-04 01:10:32 +01:00
### SYNOPSIS
python cli.bootstrap.py [-b __build_set__] [-nopatch] [-payload __tarball_path__]
2016-11-04 01:10:32 +01:00
### DESCRIPTION
cli.bootstrap.py is the .NET CLI bootstrapping script that intends to help developers move to new platforms and "bring up" the required pieces.
2016-11-04 01:10:32 +01:00
There are default settings that intend to hit the 'most cases' scenario. If all is going to plan, you should never need to specify any additional parameters. However
many situations arise where it becomes a necessity or a nice-to-have. Namely, when things go wrong, you want to be able to get in there and fix
up the build, make changes, etc. This is 'development mode' or DevMode for short. In DevMode, NO git commands are executed. This is to prevent
2016-11-04 01:10:32 +01:00
the script from stomping out any changes you have made in the working directory. Additionally, when things do go wrong (inevitably they will), this tool places a shell/batch script
within the working directory that contains the command line that failed. This is to enable the scenario where you want to 'drill into' a problem.
### EXAMPLES
The first time you run this tool HAS to be like this:
```
./cli.bootstrap.py
```
This will spawn a directory next to the bootstrap script, named after its runtime identifier (the runtime identifier is currently picked from the /os/release and we concatenate the
VERSION and VERSION_ID values). So on an AMD64 Ubuntu 16.04 machine, the RID is ubuntu.16.04-x64-dotnet
Any additional runs can be controlled via these command lines, and consequently, any additional runs are going to be in DevMode.
```
./cli.bootstrap.py -b corefx libuv
```
This will build only the corefx binaries and coreclr binaries, then patch the files.
If you want to prevent patching (for example, just to re-run a build):
```
./cli.bootstrap.py -b corefx coreclr -nopatch
```
Additionally, if you have a tarball of the files that you'd like to produce, consider:
```
./cli.bootstrap.py -b corefx coreclr -nopatch -payload ~/downloads/dotnet-dev-build.tar.gz
```
### DEFAULTS
By default, running ./cli.bootstrap.py with no additional parameters is equivalent to this command line:
```
./cli.bootstrap.py -b corefx coreclr libuv core-setup -payload __dotnet_cli_repository_url__
```
2016-11-04 01:10:32 +01:00
### OPTIONS
*-b __build_set__*
2016-11-04 01:10:32 +01:00
    __build_set__ is the space-delimited set of repositories to place. At the moment it is one of these {coreclr, corefx, core-setup, libuv}.
2016-11-04 01:10:32 +01:00
*-nopatch*
2016-11-04 01:10:32 +01:00
    As part of the bootstrapping process, we "patch" (overwrite/replace native binaries) a pre-built version of the CLI.
2016-11-04 01:10:32 +01:00
*-payload __tar_filepath__*
2016-11-04 01:10:32 +01:00
    By default cli.bootstrap will pull in a pre-built tar file from the CLI repository and patch this. If you want to provide your own binaries to patch
(from dev builds or something), then specify a path (relative or absolute).
2016-11-04 01:10:32 +01:00
### OVERVIEW
After you run the cli.bootstrap, you'll see a directory named after the Runtime Identifier (RID) next to the script, the directory tree looks like this (for example),
2016-11-04 01:10:32 +01:00
```
<RID>
├── bin
│   ├── dotnet
│   ├── host
│   ├── LICENSE.txt
│   ├── sdk
│   ├── shared
│   └── ThirdPartyNotices.txt
├── obj
│   └── dotnet-dev-debian-x64.latest.tar.gz
└── src
├── coreclr
├── corefx
├── core-setup
└── libuv
```