Confluence bied een aantal macro's om bepaalde acties te automatiseren, denk hierbij aan het toevoegen van code blokken, HTML divs en inhoudsopgaven. Maar wat deze macro's niet blijken te kunnen is het aanpassen en/of toevoegen van grote hoeveelheden pagina's. Batch acties dus. Hiervoor is iets anders beschikbaar: de Confluence CLI.
De Quaestor wiki heeft een aantal onderdelen waarbij sommige stukken tekst steeds terug komen, zoals de Quick Links onderaan een beschrijving van een attribute. Aangezien er 258 attributen en dus 258 artikelen staan waarin deze links moeten komen is dit een hoop werk om handmatig te doen. Ook komt het de precisie niet ten goede als dit met de hand wordt gedaan en moet de tekst mogelijk later weer aangepast worden. Bij dit soort situaties is de maker van de documentatie (en eigenlijk ook de gebruikers) gebaat bij een tool die dit middels een script in een keer kan doen. Confluence CLI lijkt deze mogelijkheid, en nog veel meer, te bieden.
De CLI wordt geleverd met een aardig uitgebreide documentatie. Naast deze documentatie beschrijft deze blog hoe de installatie van CLI moet gebeuren. Hieronder in een notendop wat er moet gebeuren om de CLI werkend te krijgen.
In de bijgeleverde batch file confluence.bat moeten de server, username en password worden ingevuld om connectie te kunnen maken met de Remote API van Confluence
confluence -a runFromSql --common "-a run --file appendPage.txt" --database confluence-3.5.13 --driver postgresql --sql "select '--findReplace \"@title@:''' || content.title || ''',@space@:' || spaces.spacekey || '\"' from content, spaces where content.title like '%title 1%' and content.spaceid = spaces.spaceid"
Waarin de file appendPage.txt CLI methods bevat voor het aanpassen van de pagina en de query wordt gebruikt om de pagina's te vinden die moeten worden aangepast.
set java -jar “%dirPath%”/lib/confluence-cli-2.6.0.jar
Doe ik dit:
start javaw -jar “%dirPath%”/lib/confluence-cli-2.6.0.jar
Ik heb ergens het idee dat er een soort reporting moet zijn (als een actie mislukt bijvoorbeeld) maar dat heb ik niet. Mogelijk vanwege mijn aangepaste batch.
EDIT 4-7-12
Er is nog een manier om de CLI werkend te krijgen en dat is gewoon de JAR loslaten op java.exe in de bin map van de java instalatie:
java -jar "%dirPath%"/lib/confluence-cli-2.7.0-SNAPSHOT.jar
Als de enviroment variable niet geset is is eerst een CD actie nodig om bij de bin map te komen:
cd C:\Program Files\Java\jdk1.6.0_24\jre\bin
De actie moet natuurlijk omgeschreven worden naar jouw java instalatie.
In het voorbeeld hierboven wordt er al een voorbeeld van gegeven; het uitvoeren van een extern script middels de run actie. Als je meer dan 1 actie achter elkaar wilt uitvoeren moet je dit doen, want in de CMD kan je maar 1 actie tegelijk uitvoeren, hoogst onhandig in de meeste gevallen natuurlijk. Er veranderd wel iets aan de werkwijze, normaal gesproken gebruik je --action om een actie aan te duiden.
Met een extern script gebruik je niet --action maar --a. Voorbeeld:
-a modifyPage --space "@space@" --title "@title@" --content "" --findReplaceRegex "(Quick).*?(links).*?(Function overview).*?(Attribute overview).*?(Constants overview).*?(Dimensions overview): " --noConvert
Dit staat in een aparte file. Met --a in plaats van --action wordt een actie aangeduid.