FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
Control/core/workflow/iteratorrange.go at master · AliceO2Group/Control · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
AliceO2Group
/
Control
Public
Notifications
You must be signed in to change notification settings
Fork
24
Star
7
Code
Pull requests
5
Actions
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Security and quality
Insights
Expand file tree
Breadcrumbs
Control
/
core
/
workflow
/
iteratorrange.go
Copy path
More file actions
More file actions
Latest commit
History
History
History
120 lines (103 loc) · 2.91 KB
Breadcrumbs
Control
/
core
/
workflow
/
iteratorrange.go
Copy path
File metadata and controls
120 lines (103 loc) · 2.91 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/*
* === This file is part of ALICE O² ===
*
* Copyright 2018-2020 CERN and copyright holders of ALICE O².
* Author: Teo Mrnjavac <teo.mrnjavac@cern.ch>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* In applying this license CERN does not waive the privileges and
* immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
*/
package
workflow
import
(
"encoding/json"
"strconv"
texttemplate
"text/template"
"github.com/AliceO2Group/Control/configuration/template"
"github.com/AliceO2Group/Control/core/the"
)
type
iteratorRange
interface
{
copyable
GetRange
(
varStack
map
[
string
]
string
) (
ran
[]
string
,
err
error
)
GetVar
()
string
}
type
iteratorRangeExpr
struct
{
Range
string
`yaml:"range"`
Var
string
`yaml:"var"`
}
func
(
f
*
iteratorRangeExpr
)
copy
()
copyable
{
itrCopy
:=
iteratorRangeExpr
{
Range
:
f
.
Range
,
Var
:
f
.
Var
,
}
return
&
itrCopy
}
func
(
f
*
iteratorRangeExpr
)
GetRange
(
varStack
map
[
string
]
string
) (
ran
[]
string
,
err
error
) {
rangeObj
:=
make
([]
string
,
0
)
fields
:=
template.
Fields
{
template
.
WrapPointer
(
&
f
.
Range
),
}
err
=
fields
.
Execute
(
the
.
ConfSvc
(),
""
,
varStack
,
make
(
map
[
string
]
interface
{}),
nil
,
make
(
map
[
string
]texttemplate.
Template
),
nil
)
if
err
!=
nil
{
return
}
err
=
json
.
Unmarshal
([]
byte
(
f
.
Range
),
&
rangeObj
)
ran
=
rangeObj
return
}
func
(
f
*
iteratorRangeExpr
)
GetVar
()
string
{
return
f
.
Var
}
type
iteratorRangeFor
struct
{
Begin
string
`yaml:"begin"`
End
string
`yaml:"end"`
Var
string
`yaml:"var"`
}
func
(
f
*
iteratorRangeFor
)
copy
()
copyable
{
itrCopy
:=
iteratorRangeFor
{
Begin
:
f
.
Begin
,
End
:
f
.
End
,
Var
:
f
.
Var
,
}
return
&
itrCopy
}
func
(
f
*
iteratorRangeFor
)
GetRange
(
varStack
map
[
string
]
string
) (
ran
[]
string
,
err
error
) {
ran
=
make
([]
string
,
0
)
fields
:=
template.
Fields
{
template
.
WrapPointer
(
&
f
.
Begin
),
template
.
WrapPointer
(
&
f
.
End
),
}
err
=
fields
.
Execute
(
the
.
ConfSvc
(),
""
,
varStack
,
make
(
map
[
string
]
interface
{}),
nil
,
make
(
map
[
string
]texttemplate.
Template
),
nil
)
if
err
!=
nil
{
return
}
var
begin
,
end
int
begin
,
err
=
strconv
.
Atoi
(
f
.
Begin
)
if
err
!=
nil
{
return
}
end
,
err
=
strconv
.
Atoi
(
f
.
End
)
if
err
!=
nil
{
return
}
for
j
:=
begin
;
j
<=
end
;
j
++
{
ran
=
append
(
ran
,
strconv
.
Itoa
(
j
))
}
return
}
func
(
f
*
iteratorRangeFor
)
GetVar
()
string
{
return
f
.
Var
}
Back
|
FazBrowse Home
|
New Git URL