This script travles a directory structure and creates WIKI markup and uses the Atlassian CLI for Confluence for updating a page
Several Requirements are needed for the final page to be displayed correctly:
Atlassian CLI (Notice the 3.X versions are not free, last free download versions at Atlassian CLI
Executing the script:
./updateFileContent.sh RelativeDirectory SpaceName PageName OpenMethod(same|new|lightbox) MakeTOC(yes|no)
Sample
./updateFileContent.sh "FlashGames" DiverseSpace "Flash Games" lightbox yes
Gives the Page - Christopher
Parameter | Description |
RelativeDirectory | is the path to be traveled (this is /data/images/FamilieBilleder) for my installation, where /data/images is hardcoded in the script |
---|---|
SpaceName | is the Name of the Space where a page will be updated (or created) |
PageName | is the Name of the Confluence page to be updated (or created) in the SpaceName Space |
OpenMethod | How does the Content Opens - newwin=In a New Window, lightbox=In a lightbox, Default is the same browserwindow |
yes|no | determines if a TOC markup is inserted at the top of the page |
Source of the Script:
#!/bin/bash source config.txt IFS=$(echo -en "\n\b") # Arguments Dir=$1 Space=$2 PageTitle=$3 OpenMethod=$4 MakeToc=$5 # Check Arguments if [ $# -lt 5 ] then echo "There are not 5 required arguments: Directoryname Spacekey PageTitle OpenMethod(same|new|lightbox) MakeTOC(yes|no)" exit 0 fi if [ ! -d $FileContentRoot ] then echo "FileContentRoot in config.txt: $FileContentRoot does not exist" exit 0 fi if [ $Dir == "" ] then echo "Argument 1 is empty" exit 0 fi if [ ! -d $FileContentRoot/$Dir ] then echo "Argument 1 Dir: $Dir does not exist under $FileContentRoot" exit 0 fi if [ ! -d $CLIHome ] then echo "CLIHome in config.txt: $CLIHome does not exist" exit 0 fi if [ $MakeToc == "no" ] then echo "{make-top}" > $WikiFile else echo "{make-top}" > $WikiFile echo "{toc}" >> $WikiFile fi if [ $OpenMethod == "" ] then OpenMethod == "same" fi cd $FileContentRoot/"$Dir" for file in `find . -type d | grep -v "thumbs" | grep -v "cache" | sort` do echo $file NumOfFiles=`ls -lt "$file" | awk 'NR!=1 && !/^d/ {print $NF}' | wc -l` if [ $NumOfFiles -gt 0 ] then file=$(echo "$file"|sed 's/\.\///g') if [ $file != "." ] then echo "h1. ${file}" >> $WikiFile echo "{go-top}" >> $WikiFile fi for content in `ls "$file"` do file2=$(echo "$file"|sed 's/ /%20/g') if [ $file2 == "." ] then file2="" fi echo "{me-filecontent:path=$Dir/$file2|file=$content|openmethod=$OpenMethod}" >> $WikiFile done fi done $CLIHome/confluence.sh --action storePage --space "$Space" --title "$PageTitle" --file $WikiFile
This is a sample output for the script - screenhot of a page:
Content opened up in a lightbox: