jenkins parameter update

This commit is contained in:
leedongmyung 2025-08-21 15:20:11 +09:00
parent 21a12ced3b
commit 369b4fb743
4 changed files with 48 additions and 40 deletions

View file

@ -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>

View file

@ -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);
}
}
}

View file

@ -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) =>

View file

@ -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,
};