@platforma-sdk/workflow-tengo 2.9.5 → 2.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tengo/lib/assets.lib.tengo +52 -52
- package/dist/tengo/lib/assets.swinfo.lib.tengo +45 -45
- package/dist/tengo/lib/constants.lib.tengo +32 -32
- package/dist/tengo/lib/exec.R.internal.lib.tengo +29 -29
- package/dist/tengo/lib/exec.R.lib.tengo +166 -166
- package/dist/tengo/lib/exec.constants.lib.tengo +4 -4
- package/dist/tengo/lib/exec.descriptor.lib.tengo +31 -31
- package/dist/tengo/lib/exec.internal.lib.tengo +297 -297
- package/dist/tengo/lib/exec.lib.tengo +815 -815
- package/dist/tengo/lib/exec.monetization.lib.tengo +130 -130
- package/dist/tengo/lib/exec.package.lib.tengo +212 -212
- package/dist/tengo/lib/exec.python.internal.lib.tengo +6 -6
- package/dist/tengo/lib/exec.python.lib.tengo +146 -146
- package/dist/tengo/lib/exec.runcmd.lib.tengo +371 -371
- package/dist/tengo/lib/exec.runenv.lib.tengo +92 -92
- package/dist/tengo/lib/exec.stream.lib.tengo +40 -40
- package/dist/tengo/lib/file.internal.lib.tengo +77 -77
- package/dist/tengo/lib/file.lib.tengo +57 -57
- package/dist/tengo/lib/ll.lib.tengo +244 -244
- package/dist/tengo/lib/maps.lib.tengo +152 -152
- package/dist/tengo/lib/objects.lib.tengo +13 -13
- package/dist/tengo/lib/oop.lib.tengo +19 -19
- package/dist/tengo/lib/path.lib.tengo +125 -125
- package/dist/tengo/lib/pframes.constants.lib.tengo +28 -28
- package/dist/tengo/lib/pframes.export-pcolumn.lib.tengo +33 -33
- package/dist/tengo/lib/pframes.lib.tengo +43 -43
- package/dist/tengo/lib/pframes.ll.lib.tengo +72 -72
- package/dist/tengo/lib/pframes.pcolumn.lib.tengo +49 -49
- package/dist/tengo/lib/pframes.spec.lib.tengo +96 -96
- package/dist/tengo/lib/pframes.util.lib.tengo +288 -288
- package/dist/tengo/lib/pframes.xsv.lib.tengo +272 -272
- package/dist/tengo/lib/render.lib.tengo +75 -75
- package/dist/tengo/lib/sets.lib.tengo +68 -68
- package/dist/tengo/lib/slices.lib.tengo +258 -155
- package/dist/tengo/lib/smart.lib.tengo +1069 -1069
- package/dist/tengo/lib/test.lib.tengo +161 -161
- package/dist/tengo/lib/tpl.lib.tengo +515 -515
- package/dist/tengo/lib/tpl.state-await.lib.tengo +240 -240
- package/dist/tengo/lib/tpl.util.lib.tengo +9 -9
- package/dist/tengo/lib/validation.lib.tengo +378 -378
- package/dist/tengo/lib/workdir.lib.tengo +331 -331
- package/dist/tengo/lib/workdir.proc.lib.tengo +144 -144
- package/dist/tengo/lib/workdir.save.lib.tengo +130 -130
- package/dist/tengo/lib/workflow.bobject.lib.tengo +26 -26
- package/dist/tengo/lib/workflow.bquery.lib.tengo +165 -165
- package/dist/tengo/lib/workflow.constants.lib.tengo +2 -2
- package/dist/tengo/lib/workflow.context.lib.tengo +32 -32
- package/dist/tengo/lib/workflow.lib.tengo +206 -206
- package/dist/tengo/tpl/exec.R.create-renv.plj.gz +0 -0
- package/dist/tengo/tpl/exec.exec.plj.gz +0 -0
- package/dist/tengo/tpl/exec.monetization_to_json.plj.gz +0 -0
- package/dist/tengo/tpl/exec.python.create-venv.plj.gz +0 -0
- package/dist/tengo/tpl/exec.python.install-deps.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.aggregate.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-multiple-pcolumns.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-single-pcolumn.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.import-dir.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.map-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.xsv-export-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.xsv-import-map.plj.gz +0 -0
- package/dist/tengo/tpl/workdir.save.plj.gz +0 -0
- package/dist/tengo/tpl/workflow.build-ctx.plj.gz +0 -0
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/** API to retrieve assets packed with template code (like other templates). */
|
|
2
2
|
|
|
3
3
|
plapi := import("plapi")
|
|
4
4
|
json := import("json")
|
|
@@ -7,67 +7,67 @@ smart := import("@platforma-sdk/workflow-tengo:smart")
|
|
|
7
7
|
swinfo := import("@platforma-sdk/workflow-tengo:assets.swinfo")
|
|
8
8
|
maps := import("@platforma-sdk/workflow-tengo:maps")
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Returns resource of template available in current execution context.
|
|
12
|
+
*
|
|
13
|
+
* @param tplName: string - full name of a template, including namespace (package name).
|
|
14
|
+
* Local templates (within the same package) can omit namespace part and start the name with colon:
|
|
15
|
+
* - "@company/package:someTemplateName"
|
|
16
|
+
* - ":myLocalTemplate"
|
|
17
|
+
*
|
|
18
|
+
* @return template: smart.resource - resource of tengo template with given name.
|
|
19
|
+
*/
|
|
20
20
|
importTemplate := func(tplName) {
|
|
21
|
-
return smart.resource(plapi.getTemplateId(tplName))
|
|
21
|
+
return smart.resource(plapi.getTemplateId(tplName))
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Returns asset description suitable for 'exec' operations.
|
|
26
|
+
* Asset is the way to put static files into working directory before execution of the command.
|
|
27
|
+
*
|
|
28
|
+
* @param assetName: string - full name of asset entrypoint, including namespace (NPM package name).
|
|
29
|
+
* Local software entrypoints (within the same package) can omit namespace
|
|
30
|
+
* part and start the name with colon:
|
|
31
|
+
* - "@company/package:some-software"
|
|
32
|
+
* - ":my-local-software"
|
|
33
|
+
*/
|
|
34
34
|
importAsset := func(assetName) {
|
|
35
|
-
asset := plapi.getSoftwareInfo(assetName)
|
|
36
|
-
return ll.toStrict({
|
|
37
|
-
_type: "assetDescriptor",
|
|
38
|
-
_id: asset.id,
|
|
39
|
-
|
|
40
|
-
resource: smart.resource(asset.id),
|
|
41
|
-
name: asset.name,
|
|
42
|
-
version: asset.version,
|
|
43
|
-
blobRef: asset.blobRef,
|
|
44
|
-
descriptor: ll.toStrict(json.decode(asset.descriptor)) // raw sw.json data with asset entrypoint descriptor
|
|
45
|
-
})
|
|
35
|
+
asset := plapi.getSoftwareInfo(assetName)
|
|
36
|
+
return ll.toStrict({
|
|
37
|
+
_type: "assetDescriptor",
|
|
38
|
+
_id: asset.id,
|
|
39
|
+
|
|
40
|
+
resource: smart.resource(asset.id),
|
|
41
|
+
name: asset.name,
|
|
42
|
+
version: asset.version,
|
|
43
|
+
blobRef: asset.blobRef,
|
|
44
|
+
descriptor: ll.toStrict(json.decode(asset.descriptor)) // raw sw.json data with asset entrypoint descriptor
|
|
45
|
+
})
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Checks if given item is an asset info
|
|
50
|
+
*
|
|
51
|
+
* @param toCheck: any - item to check
|
|
52
|
+
*
|
|
53
|
+
* @return isAsset: boolean - true for asset info, loaded with importAsset()
|
|
54
|
+
*/
|
|
55
55
|
isAssetInfo := func(toCheck) {
|
|
56
|
-
if !ll.isMap(toCheck) {
|
|
57
|
-
return false
|
|
58
|
-
}
|
|
56
|
+
if !ll.isMap(toCheck) {
|
|
57
|
+
return false
|
|
58
|
+
}
|
|
59
59
|
|
|
60
|
-
if !maps.containsKey(toCheck, "_type") {
|
|
61
|
-
return false
|
|
62
|
-
}
|
|
60
|
+
if !maps.containsKey(toCheck, "_type") {
|
|
61
|
+
return false
|
|
62
|
+
}
|
|
63
63
|
|
|
64
|
-
return toCheck._type == "assetDescriptor"
|
|
64
|
+
return toCheck._type == "assetDescriptor"
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
export ll.toStrict({
|
|
68
|
-
importTemplate : importTemplate,
|
|
69
|
-
importSoftware : swinfo.importSoftware,
|
|
70
|
-
isSoftwareInfo : swinfo.isSoftwareInfo,
|
|
71
|
-
importAsset : importAsset,
|
|
72
|
-
isAssetInfo : isAssetInfo
|
|
68
|
+
importTemplate : importTemplate,
|
|
69
|
+
importSoftware : swinfo.importSoftware,
|
|
70
|
+
isSoftwareInfo : swinfo.isSoftwareInfo,
|
|
71
|
+
importAsset : importAsset,
|
|
72
|
+
isAssetInfo : isAssetInfo
|
|
73
73
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* A file that contains software info constructors and related functions.
|
|
3
|
+
*/
|
|
4
4
|
|
|
5
5
|
plapi := import("plapi")
|
|
6
6
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
@@ -8,58 +8,58 @@ maps := import("@platforma-sdk/workflow-tengo:maps")
|
|
|
8
8
|
smart := import("@platforma-sdk/workflow-tengo:smart")
|
|
9
9
|
json := import("json")
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Creates a software info by sw that is got from backend.
|
|
13
|
+
*/
|
|
14
14
|
newSoftwareInfo := func(sw) {
|
|
15
|
-
return ll.toStrict({
|
|
16
|
-
_type: "softwareDescriptor",
|
|
17
|
-
_id: sw.id,
|
|
18
|
-
|
|
19
|
-
resource: smart.resource(sw.id),
|
|
20
|
-
name: sw.name,
|
|
21
|
-
version: sw.version,
|
|
22
|
-
blobRef: sw.blobRef,
|
|
23
|
-
descriptor: ll.toStrict(json.decode(sw.descriptor)) // raw sw.json data with software entrypoint descriptor
|
|
24
|
-
})
|
|
15
|
+
return ll.toStrict({
|
|
16
|
+
_type: "softwareDescriptor",
|
|
17
|
+
_id: sw.id,
|
|
18
|
+
|
|
19
|
+
resource: smart.resource(sw.id),
|
|
20
|
+
name: sw.name,
|
|
21
|
+
version: sw.version,
|
|
22
|
+
blobRef: sw.blobRef,
|
|
23
|
+
descriptor: ll.toStrict(json.decode(sw.descriptor)) // raw sw.json data with software entrypoint descriptor
|
|
24
|
+
})
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Returns software description suitable for 'exec' operations.
|
|
29
|
+
*
|
|
30
|
+
* @param swName: string - full name of the software entrypoint, including namespace (NPM package name).
|
|
31
|
+
* Local software entrypoints (within the same package) can omit namespace part
|
|
32
|
+
* and start the name with colon:
|
|
33
|
+
* - "@company/package:some-oftware"
|
|
34
|
+
* - ":my-local-software"
|
|
35
|
+
*
|
|
36
|
+
* @return softwareInfo: softwareInfo - structure with software info.
|
|
37
|
+
*/
|
|
38
38
|
importSoftware := func(swName) {
|
|
39
|
-
return newSoftwareInfo(plapi.getSoftwareInfo(swName))
|
|
39
|
+
return newSoftwareInfo(plapi.getSoftwareInfo(swName))
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Checks if given item is a software info
|
|
44
|
+
*
|
|
45
|
+
* @param toCheck: any - item to check
|
|
46
|
+
*
|
|
47
|
+
* @return isSoftware: boolean - true for software info, loaded with importSoftware()
|
|
48
|
+
*/
|
|
49
49
|
isSoftwareInfo := func(toCheck) {
|
|
50
|
-
if !ll.isMap(toCheck) {
|
|
51
|
-
return false
|
|
52
|
-
}
|
|
50
|
+
if !ll.isMap(toCheck) {
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
53
|
|
|
54
|
-
if !maps.containsKey(toCheck, "_type") {
|
|
55
|
-
return false
|
|
56
|
-
}
|
|
54
|
+
if !maps.containsKey(toCheck, "_type") {
|
|
55
|
+
return false
|
|
56
|
+
}
|
|
57
57
|
|
|
58
|
-
return toCheck._type == "softwareDescriptor"
|
|
58
|
+
return toCheck._type == "softwareDescriptor"
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
export ll.toStrict({
|
|
62
|
-
newSoftwareInfo: newSoftwareInfo,
|
|
63
|
-
importSoftware: importSoftware,
|
|
64
|
-
isSoftwareInfo: isSoftwareInfo
|
|
62
|
+
newSoftwareInfo: newSoftwareInfo,
|
|
63
|
+
importSoftware: importSoftware,
|
|
64
|
+
isSoftwareInfo: isSoftwareInfo
|
|
65
65
|
})
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
// constants
|
|
2
2
|
|
|
3
3
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
4
4
|
|
|
5
5
|
RTYPE_JSON := { Name: "json/object", Version: "1" }
|
|
6
6
|
|
|
7
7
|
RTYPE_MAP := { Name: "std/map", Version: "1" }
|
|
8
|
-
|
|
8
|
+
// @TODO this should be deleted once we align on map type name
|
|
9
9
|
RTYPE_MAP_ALT := { Name: "StdMap", Version: "1" }
|
|
10
10
|
RTYPE_MAP_EPH := { Name: "EphStdMap", Version: "1" }
|
|
11
11
|
|
|
@@ -33,7 +33,7 @@ RTYPE_WORKDIR_FILL_RULES := { Name: "WorkdirFill/rules", Version: "1" }
|
|
|
33
33
|
RTYPE_WORKDIR_SAVE := { Name: "WorkdirSave", Version: "1" }
|
|
34
34
|
RTYPE_WORKDIR_SAVE_RULES := { Name: "WorkdirSave/rules", Version: "1" }
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
/** Main resource type of representing a PL error */
|
|
37
37
|
RTYPE_JSON_ERROR := { Name: "json/resourceError", Version: "1"}
|
|
38
38
|
|
|
39
39
|
FTYPE_OTW := "OTW" // Generic one-time writable field. The value of this field can be set only once.
|
|
@@ -43,33 +43,33 @@ FTYPE_OUTPUT := "output"
|
|
|
43
43
|
FTYPE_DYNAMIC := "dynamic"
|
|
44
44
|
|
|
45
45
|
export ll.toStrict({
|
|
46
|
-
FTYPE_OTW : FTYPE_OTW,
|
|
47
|
-
FTYPE_SERVICE : FTYPE_SERVICE,
|
|
48
|
-
FTYPE_INPUT : FTYPE_INPUT,
|
|
49
|
-
FTYPE_OUTPUT : FTYPE_OUTPUT,
|
|
50
|
-
FTYPE_DYNAMIC : FTYPE_DYNAMIC,
|
|
51
|
-
|
|
52
|
-
RTYPE_BINARY_MAP : RTYPE_BINARY_MAP,
|
|
53
|
-
RTYPE_BINARY_VALUE : RTYPE_BINARY_VALUE,
|
|
54
|
-
RTYPE_BLOB_MAP : RTYPE_BLOB_MAP,
|
|
55
|
-
RTYPE_BOBJECT_SPEC : RTYPE_BOBJECT_SPEC,
|
|
56
|
-
RTYPE_BRESOLVE_CHOICE : RTYPE_BRESOLVE_CHOICE,
|
|
57
|
-
RTYPE_BRESOLVE_FIRST : RTYPE_BRESOLVE_FIRST,
|
|
58
|
-
RTYPE_BRESOLVE_NO_RESULT : RTYPE_BRESOLVE_NO_RESULT,
|
|
59
|
-
RTYPE_CONTEXT : RTYPE_CONTEXT,
|
|
60
|
-
RTYPE_CONTEXT_END : RTYPE_CONTEXT_END,
|
|
61
|
-
RTYPE_JSON : RTYPE_JSON,
|
|
62
|
-
RTYPE_MAP : RTYPE_MAP,
|
|
63
|
-
RTYPE_MAP_ALT : RTYPE_MAP_ALT,
|
|
64
|
-
RTYPE_MAP_EPH : RTYPE_MAP_EPH,
|
|
65
|
-
RTYPE_QUERY_RESULT : RTYPE_QUERY_RESULT,
|
|
66
|
-
RTYPE_OBJECT_SPEC : RTYPE_OBJECT_SPEC,
|
|
67
|
-
RTYPE_RENDER_EPH_TEMPLATE : RTYPE_RENDER_EPH_TEMPLATE,
|
|
68
|
-
RTYPE_RENDER_TEMPLATE : RTYPE_RENDER_TEMPLATE,
|
|
69
|
-
RTYPE_WORKDIR_CREATE : RTYPE_WORKDIR_CREATE,
|
|
70
|
-
RTYPE_WORKDIR_FILL : RTYPE_WORKDIR_FILL,
|
|
71
|
-
RTYPE_WORKDIR_FILL_RULES : RTYPE_WORKDIR_FILL_RULES,
|
|
72
|
-
RTYPE_WORKDIR_SAVE : RTYPE_WORKDIR_SAVE,
|
|
73
|
-
RTYPE_WORKDIR_SAVE_RULES : RTYPE_WORKDIR_SAVE_RULES,
|
|
74
|
-
RTYPE_JSON_ERROR : RTYPE_JSON_ERROR
|
|
46
|
+
FTYPE_OTW : FTYPE_OTW,
|
|
47
|
+
FTYPE_SERVICE : FTYPE_SERVICE,
|
|
48
|
+
FTYPE_INPUT : FTYPE_INPUT,
|
|
49
|
+
FTYPE_OUTPUT : FTYPE_OUTPUT,
|
|
50
|
+
FTYPE_DYNAMIC : FTYPE_DYNAMIC,
|
|
51
|
+
|
|
52
|
+
RTYPE_BINARY_MAP : RTYPE_BINARY_MAP,
|
|
53
|
+
RTYPE_BINARY_VALUE : RTYPE_BINARY_VALUE,
|
|
54
|
+
RTYPE_BLOB_MAP : RTYPE_BLOB_MAP,
|
|
55
|
+
RTYPE_BOBJECT_SPEC : RTYPE_BOBJECT_SPEC,
|
|
56
|
+
RTYPE_BRESOLVE_CHOICE : RTYPE_BRESOLVE_CHOICE,
|
|
57
|
+
RTYPE_BRESOLVE_FIRST : RTYPE_BRESOLVE_FIRST,
|
|
58
|
+
RTYPE_BRESOLVE_NO_RESULT : RTYPE_BRESOLVE_NO_RESULT,
|
|
59
|
+
RTYPE_CONTEXT : RTYPE_CONTEXT,
|
|
60
|
+
RTYPE_CONTEXT_END : RTYPE_CONTEXT_END,
|
|
61
|
+
RTYPE_JSON : RTYPE_JSON,
|
|
62
|
+
RTYPE_MAP : RTYPE_MAP,
|
|
63
|
+
RTYPE_MAP_ALT : RTYPE_MAP_ALT,
|
|
64
|
+
RTYPE_MAP_EPH : RTYPE_MAP_EPH,
|
|
65
|
+
RTYPE_QUERY_RESULT : RTYPE_QUERY_RESULT,
|
|
66
|
+
RTYPE_OBJECT_SPEC : RTYPE_OBJECT_SPEC,
|
|
67
|
+
RTYPE_RENDER_EPH_TEMPLATE : RTYPE_RENDER_EPH_TEMPLATE,
|
|
68
|
+
RTYPE_RENDER_TEMPLATE : RTYPE_RENDER_TEMPLATE,
|
|
69
|
+
RTYPE_WORKDIR_CREATE : RTYPE_WORKDIR_CREATE,
|
|
70
|
+
RTYPE_WORKDIR_FILL : RTYPE_WORKDIR_FILL,
|
|
71
|
+
RTYPE_WORKDIR_FILL_RULES : RTYPE_WORKDIR_FILL_RULES,
|
|
72
|
+
RTYPE_WORKDIR_SAVE : RTYPE_WORKDIR_SAVE,
|
|
73
|
+
RTYPE_WORKDIR_SAVE_RULES : RTYPE_WORKDIR_SAVE_RULES,
|
|
74
|
+
RTYPE_JSON_ERROR : RTYPE_JSON_ERROR
|
|
75
75
|
})
|
|
@@ -6,40 +6,40 @@ desc := import("@platforma-sdk/workflow-tengo:exec.descriptor")
|
|
|
6
6
|
constants := import("@platforma-sdk/workflow-tengo:exec.constants")
|
|
7
7
|
|
|
8
8
|
rVenvInputSchema := {
|
|
9
|
-
operationMode: "string",
|
|
10
|
-
toolset: "string",
|
|
11
|
-
dependencies: {"any": "string"},
|
|
12
|
-
software: validation.reference,
|
|
9
|
+
operationMode: "string",
|
|
10
|
+
toolset: "string",
|
|
11
|
+
dependencies: {"any": "string"},
|
|
12
|
+
software: validation.reference,
|
|
13
13
|
|
|
14
|
-
rDescriptor: desc.runEnvScheme,
|
|
15
|
-
R: validation.reference
|
|
14
|
+
rDescriptor: desc.runEnvScheme,
|
|
15
|
+
R: validation.reference
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
runRBuilder := func(operationMode, wd, rPackage, rDescriptor) {
|
|
19
|
-
t := desc.canBackendUseExpressions() ? constants.ARG_TYPE_EXPRESSION : constants.ARG_TYPE_VAR
|
|
20
|
-
rule := desc.canBackendUseExpressions() ? "R" : "{R}"
|
|
21
|
-
|
|
22
|
-
builder := runcmd.builder(wd).
|
|
23
|
-
ref("r-run-environment", rPackage).
|
|
24
|
-
substitutionRule(rule, "r-run-environment").
|
|
25
|
-
addToPath(t, path.join("{R}", rDescriptor.binDir)).
|
|
26
|
-
envTyped("RHOME", t, "{R}").
|
|
27
|
-
envTyped("R_HOME_DIR", t, "{R}").
|
|
28
|
-
envTyped("RENV_PATHS_ROOT", t, path.join("{R}", "renv-root")).
|
|
29
|
-
envTyped("RENV_PATHS_BINARY", t, path.join("{R}", "renv-root", "binaries")).
|
|
30
|
-
envTyped("RENV_PATHS_SOURCE", t, path.join("{R}", "renv-root", "sources")).
|
|
31
|
-
envTyped("RENV_PATHS_CACHE", t, path.join("{R}", "renv-root", "cache"))
|
|
32
|
-
|
|
33
|
-
if (operationMode != "dev-local") {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
builder.envTyped("RENV_CONFIG_REPOS_OVERRIDE", t, path.join("{R}", "packages"))
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return builder
|
|
19
|
+
t := desc.canBackendUseExpressions() ? constants.ARG_TYPE_EXPRESSION : constants.ARG_TYPE_VAR
|
|
20
|
+
rule := desc.canBackendUseExpressions() ? "R" : "{R}"
|
|
21
|
+
|
|
22
|
+
builder := runcmd.builder(wd).
|
|
23
|
+
ref("r-run-environment", rPackage).
|
|
24
|
+
substitutionRule(rule, "r-run-environment").
|
|
25
|
+
addToPath(t, path.join("{R}", rDescriptor.binDir)).
|
|
26
|
+
envTyped("RHOME", t, "{R}").
|
|
27
|
+
envTyped("R_HOME_DIR", t, "{R}").
|
|
28
|
+
envTyped("RENV_PATHS_ROOT", t, path.join("{R}", "renv-root")).
|
|
29
|
+
envTyped("RENV_PATHS_BINARY", t, path.join("{R}", "renv-root", "binaries")).
|
|
30
|
+
envTyped("RENV_PATHS_SOURCE", t, path.join("{R}", "renv-root", "sources")).
|
|
31
|
+
envTyped("RENV_PATHS_CACHE", t, path.join("{R}", "renv-root", "cache"))
|
|
32
|
+
|
|
33
|
+
if (operationMode != "dev-local") {
|
|
34
|
+
// In production we can use only locally cached packages: most of commercials have
|
|
35
|
+
// Platforma Backend executed in a very restricted environment with limited access to the internet.
|
|
36
|
+
builder.envTyped("RENV_CONFIG_REPOS_OVERRIDE", t, path.join("{R}", "packages"))
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return builder
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
export ll.toStrict({
|
|
43
|
-
rVenvInputSchema : rVenvInputSchema,
|
|
44
|
-
runRBuilder : runRBuilder
|
|
43
|
+
rVenvInputSchema : rVenvInputSchema,
|
|
44
|
+
runRBuilder : runRBuilder
|
|
45
45
|
})
|