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 Script for making thumbnail images (makethumbs.sh) User Macro: make-top (User Macro) User Macro: go-top (User Macro) User Macro: me-image - Image lightbox with Slimbox2 (User Macro) User Macro: include-lightbox - Slimbox2 including (In Global HTML or Layout) User Macro: me-video - Linking to a Video file (User Macro) |
Executing the script:
./updateGallery.sh RelativeDirectory SpaceName PageName yes|no eGrep |
Sample
./updateGallery.sh "FamilieBilleder" familiebilleder Christopher yes "Christopher|Stoffer" |
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 |
yes|no | determines if a TOC markup is inserted at the top of the page |
eGrep | is an optional RegEx string for fine-picking from the RelativeDirectory structure (blank selects all images/movies) |
Source of the Script:
#!/bin/bash IFS=$(echo -en "\n\b") Database="Confluence" # Arguments Dir=$1 Space=$2 PageTitle=$3 MakeToc=$4 GrepFor=$5 # Check Arguments if [ $# -lt 4 ] then echo "There are not at least 4 Arguments: Dir Space PageTitle yes/no" exit 0 fi if [ Dir == "" ] then echo "Argument 1 is empty" exit 0 fi if [ ! -d /data/images/$Dir ] then echo "Argument 1 Dir: $Dir does not exist" exit 0 fi if [ $MakeToc == "no" ] then html="{make-top}" else html="{toc} \n {make-top}" fi cd /data/images/"$Dir" for file in `find . -type d | grep -v "thumbs" | grep -v "cache" | egrep -i "$GrepFor" | sort` do echo $file NumOfPics=`ls -t "$file" | egrep -i "\.(jpg|gif|png|avi|flv|mov)$" | wc -l` if [ $NumOfPics -gt 0 ] then file=$(echo "$file"|sed 's/\.\///g') html="$html \n h1. $file \n {go-top} \n " group=$file for image in `ls "$file" | egrep -i "\.(jpg|gif|png)$"` do file2=$(echo "$file"|sed 's/ /%20/g') if [ $file2 == "." ] then file2="" else file2="$file2/" fi html="$html {me-image:path=$Dir/$file2/|image=$image|group=$group}" done for movie in `ls "$file" | egrep -i "\.(flv|avi|mov)$"` do file2=$(echo "$file"|sed 's/ /%20/g') html="$html {me-video:path=$Dir/$file2/|image=$movie}" done html="$html \n " fi done /opt/atlassian-cli/confluence.sh --action storePage --space "$Space" --title "$PageTitle" --content "$html" |
This is a sample output for the script:
{make-top} {toc} h1. 2 x Fødselsdag 03-09-2011 {go-top} {me-image:path=FamilieBilleder/2011/2%20x%20Fødselsdag%2003-09-2011/|image=CIMG2034.JPG|group=2 x Fødselsdag 03-09-2011} {me-image:path=FamilieBilleder/2011/2%20x%20Fødselsdag%2003-09-2011/|image=CIMG2035.JPG|group=2 x Fødselsdag 03-09-2011} {me-image:path=FamilieBilleder/2011/2%20x%20Fødselsdag%2003-09-2011/|image=CIMG2036.JPG|group=2 x Fødselsdag 03-09-2011} {me-image:path=FamilieBilleder/2011/2%20x%20Fødselsdag%2003-09-2011/|image=CIMG2037.JPG|group=2 x Fødselsdag 03-09-2011} {me-image:path=FamilieBilleder/2011/2%20x%20Fødselsdag%2003-09-2011/|image=CIMG2038.JPG|group=2 x Fødselsdag 03-09-2011} {me-image:path=FamilieBilleder/2011/2%20x%20Fødselsdag%2003-09-2011/|image=CIMG2039.JPG|group=2 x Fødselsdag 03-09-2011} h1. Afslapning 24-07-2011 {go-top} |