summaryrefslogtreecommitdiffstats
path: root/scripts/sdks/README.md
blob: 8b741ec90c098d347ab7f671a7d715f31d983acd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# SDKs management scripts

To support a new SDK family, you must create a new directory under
`scripts/sdk/xxx` where xxx is the new SDK family.

Then you must create the following scripts (or executable) :

- `get-config`: returned SDK configuration structure
- `list`: returned the list of installed SDKs
- `add`: add a new SDK
- `remove`: remove an existing SDK

## `get-config`

Returned SDK configuration as json format:

```json
{
    "familyName": "xxx",
    "description": "bla bla",
    "rootDir": "/yyy/zzz",
    "envSetupFilename": "my-envfilename*",
    "scriptsDir": "scripts_path"
}
```

where:

- `familyName` : sdk familyName (usually same name used as xxx directory)
- `rootDir` : root directory where SDK are/will be  installed
- `envSetupFilename` : sdk files (present in each sdk) that will be sourced to
  setup sdk environment

## `list`

Returned the list all SDKs (available and installed)

```json
[
  {
    "name":         "My SDK name",
    "description":  "A description",
    "profile":      "profile",
    "version":      "version",
    "arch":         "architecture",
    "path":         "path where sdk installed locally",
    "url":          "https://website.url.to.download.sdk",
    "status":       "Not Installed | Installed",
    "date":         "2017-12-25 00:00",
    "size":         "123 MB",
    "md5sum":       "123456789",
    "setupFile":    "path to file to setup SDK environment"
  }, {
    "name":         "My SDK name 2",
    "description":  "A description 2",
    ...
  }
  ...
]
```

## `add`

add a new SDK

List of parameters to implement:

- `-f|--file <filepath>` :  install a SDK using a file
- `--force`:                force SDK install when a SDK already in the same destination directory
- `-u|--url <url>` :        download SDK using this URL and then install it
- `-no-clean` :             don't cleanup temporary files
- `-h|--help` :             display help

## `remove`

Remove an existing SDK

The first argument is the full path of the directory of the SDK to removed.