I am new on this and I would like some help. I have a XML file and I need to edite you content when some cretirias are met.
Currently I'm using the sed Unix commando, but this only exclude the entire line, but I need to exclude the entire block
What I have
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<name>ApexClass</name>
<members>CC_CaseScenarioMatchingJobQueueable</members>
</types>
<types>
<name>EmailTemplate</name>
<members>CC_CaseScenarioMatchingJobQueueable</members>
</types>
<types>
<name>CustomObject</name>
<members>CC_CaseScenarioMatchingJobQueueable</members>
</types>
</Package>
What I need to solve. When I for a key for example "ApexClass" I have to delete from the tag "" to "" related to this na "ApexClass"
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<name>EmailTemplate</name>
<members>CC_CaseScenarioMatchingJobQueueable</members>
</types>
<types>
<name>CustomObject</name>
<members>CC_CaseScenarioMatchingJobQueueable</members>
</types>
</Package>
This is my currently code.
job1:
stage: test
script:
- cleanItems="$(cat config/destructiveClean.list | tr -d '\r' | tr '\n' ' ')"
- >
if [ ! -z "$cleanItems" ]; then
echo "=== Additional cleaning ==="
for cleanItem in ${cleanItems}; do
metadaType=${cleanItem%:*}
echo -ne "Cleaning ${metadaType} "
sed -i "/${metadaType}/d" destructiveChanges.xml
echo -e "\rCleaning ${metadaType} "
done
isDeleted="$(grep -c "<types>" destructiveChanges.xml)"
deleted=${isDeleted%:*}
echo -e "isDeleted ${deleted} "
if [ "$deleted" == 1 ]; then
echo "=== Deleting destructiveChanges.xml file ==="
rm - destructiveChanges.xml
fi
else
echo -e "Additional cleaning should be added in the config\destructiveClean.list file"
fi
Thank you very much for you help!!