diff --git a/assets/pipeline-test2.yaml b/assets/pipeline-test2.yaml
index cffcabc..ee15870 100644
--- a/assets/pipeline-test2.yaml
+++ b/assets/pipeline-test2.yaml
@@ -47,5 +47,5 @@ commands:
- command: FileWrite
id: write
param:
- path: /Users/leedongmyung/works/oto_cli/assets/config.xml
+ path: /assets/config.xml
content:
\ No newline at end of file
diff --git a/lib/oto/commands/jenkins/jenkins.dart b/lib/oto/commands/jenkins/jenkins.dart
index 2d869bf..1f46144 100644
--- a/lib/oto/commands/jenkins/jenkins.dart
+++ b/lib/oto/commands/jenkins/jenkins.dart
@@ -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 = '';
+ var start = data.content?.indexOf(startId);
+ var end =
+ data.content?.indexOf('');
+ var startParam = start! + startId.length;
+ var endParam = end!;
+ var paramContent = data.content?.substring(start + startId.length, end);
+ startId = '${data.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);
}
-}
\ No newline at end of file
+}
diff --git a/lib/oto/data/command_data.dart b/lib/oto/data/command_data.dart
index 04c3ac8..847683b 100644
--- a/lib/oto/data/command_data.dart
+++ b/lib/oto/data/command_data.dart
@@ -602,7 +602,6 @@ class DataSlackFile extends DataParam {
Map 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 json) =>
diff --git a/lib/oto/data/command_data.g.dart b/lib/oto/data/command_data.g.dart
index 670d2f6..61465ed 100644
--- a/lib/oto/data/command_data.g.dart
+++ b/lib/oto/data/command_data.g.dart
@@ -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 _$DataJenkinsParameterModifyToJson(
@@ -2116,6 +2115,5 @@ Map _$DataJenkinsParameterModifyToJson(
'content': instance.content,
'name': instance.name,
'value': instance.value,
- 'defaultValue': instance.defaultValue,
'setContent': instance.setContent,
};