jenkins parameter update
This commit is contained in:
parent
21a12ced3b
commit
369b4fb743
4 changed files with 48 additions and 40 deletions
|
|
@ -47,5 +47,5 @@ commands:
|
|||
- command: FileWrite
|
||||
id: write
|
||||
param:
|
||||
path: /Users/leedongmyung/works/oto_cli/assets/config.xml
|
||||
path: <!property.workspace>/assets/config.xml
|
||||
content: <!property.content>
|
||||
|
|
@ -9,45 +9,57 @@ class JenkinsParameterModify extends Command {
|
|||
Future execute(DataCommand command) async {
|
||||
var data = DataJenkinsParameterModify.fromJson(getParam(command));
|
||||
|
||||
final document = xml.XmlDocument.parse(data.content!);
|
||||
var project = document.findAllElements('project').first;
|
||||
for( var child in project.children ) {
|
||||
if(child is xml.XmlElement && child.localName == 'properties') {
|
||||
var property = child.findAllElements('hudson.model.ParametersDefinitionProperty').first;
|
||||
var definitions = property.findAllElements('parameterDefinitions').first.childElements;
|
||||
for(var def in definitions) {
|
||||
var paramName = def.getElement('name');
|
||||
if(paramName?.innerText == data.name) {
|
||||
switch(def.localName) {
|
||||
case 'hudson.model.BooleanParameterDefinition':
|
||||
if(data.defaultValue != null) {
|
||||
var defaultValue = def.getElement('defaultValue');
|
||||
defaultValue?.innerText = data.defaultValue;
|
||||
}
|
||||
break;
|
||||
case 'hudson.model.ChoiceParameterDefinition':
|
||||
if(data.value is List) {
|
||||
var choices = def.getElement('choices');
|
||||
choices?.children.clear();
|
||||
var a = xml.XmlElement(xml.XmlName('a'), [xml.XmlAttribute(xml.XmlName('class'), 'string-array')]);
|
||||
for(var item in data.value) {
|
||||
a.children.add(xml.XmlElement(xml.XmlName('string'), [], [xml.XmlText(item)]));
|
||||
}
|
||||
choices?.children.add(a);
|
||||
}
|
||||
break;
|
||||
case 'hudson.model.TextParameterDefinition':
|
||||
break;
|
||||
case 'hudson.model.StringParameterDefinition':
|
||||
break;
|
||||
var startId = '<hudson.model.ParametersDefinitionProperty>';
|
||||
var start = data.content?.indexOf(startId);
|
||||
var end =
|
||||
data.content?.indexOf('</hudson.model.ParametersDefinitionProperty>');
|
||||
var startParam = start! + startId.length;
|
||||
var endParam = end!;
|
||||
var paramContent = data.content?.substring(start + startId.length, end);
|
||||
startId = '<name>${data.name}</name>';
|
||||
start = paramContent
|
||||
?.substring(0, paramContent.indexOf(startId))
|
||||
.lastIndexOf('<');
|
||||
var findContent = paramContent?.substring(start!);
|
||||
end = findContent?.indexOf('>');
|
||||
var element = findContent?.substring(1, end! + 1);
|
||||
startId = '</$element';
|
||||
end = findContent?.indexOf(startId);
|
||||
var property = findContent?.substring(0, end! + startId.length);
|
||||
|
||||
final def = xml.XmlDocument.parse(property!).rootElement;
|
||||
|
||||
var paramName = def.getElement('name');
|
||||
if (paramName?.innerText == data.name) {
|
||||
switch (def.localName) {
|
||||
case 'hudson.model.ChoiceParameterDefinition':
|
||||
if (data.value is List) {
|
||||
var choices = def.getElement('choices');
|
||||
choices?.children.clear();
|
||||
var a = xml.XmlElement(xml.XmlName('a'),
|
||||
[xml.XmlAttribute(xml.XmlName('class'), 'string-array')]);
|
||||
for (var item in data.value) {
|
||||
a.children.add(xml.XmlElement(
|
||||
xml.XmlName('string'), [], [xml.XmlText(item)]));
|
||||
}
|
||||
choices?.children.add(a);
|
||||
}
|
||||
}
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
var defaultValue = def.getElement('defaultValue');
|
||||
defaultValue?.innerText = data.value;
|
||||
}
|
||||
property = def.toXmlString();
|
||||
}
|
||||
setProperty(data.setContent!, document.toXmlString(), showPrint: data.showPrint);
|
||||
|
||||
paramContent = paramContent?.replaceRange(
|
||||
start!, start + end! + startId.length, property);
|
||||
|
||||
var content =
|
||||
data.content?.replaceRange(startParam, endParam, paramContent!);
|
||||
|
||||
setProperty(data.setContent!, content, showPrint: data.showPrint);
|
||||
|
||||
return await complete(0, command);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -602,7 +602,6 @@ class DataSlackFile extends DataParam {
|
|||
Map<String, dynamic> toJson() => _$DataSlackFileToJson(this);
|
||||
}
|
||||
|
||||
|
||||
//Slack Build
|
||||
@JsonSerializable()
|
||||
class DataSlackBuild extends DataSlackSender {
|
||||
|
|
@ -1227,7 +1226,6 @@ class DataJenkinsParameterModify extends DataParam {
|
|||
late String? content;
|
||||
late String? name;
|
||||
late dynamic value;
|
||||
late dynamic defaultValue;
|
||||
late String? setContent;
|
||||
|
||||
factory DataJenkinsParameterModify.fromJson(Map<String, dynamic> json) =>
|
||||
|
|
|
|||
|
|
@ -2102,7 +2102,6 @@ DataJenkinsParameterModify _$DataJenkinsParameterModifyFromJson(
|
|||
..content = json['content'] as String?
|
||||
..name = json['name'] as String?
|
||||
..value = json['value']
|
||||
..defaultValue = json['defaultValue']
|
||||
..setContent = json['setContent'] as String?;
|
||||
|
||||
Map<String, dynamic> _$DataJenkinsParameterModifyToJson(
|
||||
|
|
@ -2116,6 +2115,5 @@ Map<String, dynamic> _$DataJenkinsParameterModifyToJson(
|
|||
'content': instance.content,
|
||||
'name': instance.name,
|
||||
'value': instance.value,
|
||||
'defaultValue': instance.defaultValue,
|
||||
'setContent': instance.setContent,
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue