Skip to Content

Scripting operations

After reading the recent blog Dissecting Ep6 Transport Packages – to deal with Ep5 to Ep6 migration quirks by Viswanath Naidu, I saw that the operations there should be easy to script.

I decided to make a couple of bash scripts which will run on the linux and unix platform. For those of you running windows I recommend that you install cygwin which is “a Linux-like environment for Windows” and allows you to run bash scripts under windows (this is how they were tested).

I didn’t have a transport from EP5 or EP6 available, but Viswanath description of the transports file structure ought to be sufficient.

The unpackEPA script

The only complex operation in unpacking the transport file, is that all .ept files in the EPA sub-folder should be unzipped after the transport file has been unzipped.

The scripts is as follows:

#!/bin/sh

#Print usage if parameter count is wrong

if

then

  echo “Usage: $0 mytransportpackage.epa” ;

  exit 1

fi

TRANSPORT_FILE=$1

#Only do the action if this file actually exist

if

then

     echo “Processing transport file $TRANSPORT_FILE”

     

     #Unzip to temporary directory

     unzip -q -d $TRANSPORT_FILE.temp $TRANSPORT_FILE

     cd $TRANSPORT_FILE.temp/EPT

     

     #For all ept files in the current folder

     #1. Unzip into folder The script will move the EPA transport file to a new file with postfix .org since the unpacked folder will have the same name as the orignal EPA transport file.

The packEPA script

The only complex operation in packing the transport file, is that you have to zip all .ept files in the EPA sub-folder before you pack the transport file.

The scripts is as follows:

#/bin/sh

#Print usage if parameter count is wrong

if

then

  echo “Usage: $0 mytransportpackage.epa” ;

  echo ”       where the mytransportpackage.epa is a directory”

  exit 1

fi

TRANSPORT_DIR=$1

#Only do the action if the inparameter is a directory

if

then

     echo “Creating transport file from directory $TRANSPORT_DIR”

     cd $TRANSPORT_DIR/EPT

     for file in `ls -d *.ept` ;

          do echo “Processing EPT file $file” ;

          cd $file

          zip -q -r $file.zip *

          mv $file.zip ../

          cd ..

          rm -rf $file;

          mv $file.zip $file ;

     done;

     

     cd ..

     echo “Processing transport directory $TRANSPORT_DIR”

     #Zip the EPA file

     zip -q -r $TRANSPORT_DIR.zip *

     

     mv $TRANSPORT_DIR.zip ../

     cd ..

     #Since we can’t have two files with the same name we delete the

     #transport directory

     rm -rf $TRANSPORT_DIR;

     mv $TRANSPORT_DIR.zip $TRANSPORT_DIR;

else  

  echo “File $TRANSPORT_DIR does not exist or is not a directory” ;

  exit 1

fi

Please note that this script deletes the directory which contained the .epa file contents.

Summary

We have shown two simple bash scripts which let you unpack a transport file, do some work on it and then pack it back together again.

To report this post you need to login first.

4 Comments

You must be Logged on to comment or reply to a post.

  1. Viswanath Naidu
    Hi Dagfinn,

    Vis here.  Thanks for the follow up to my weblog.  It sounds really easy to set this up.  I’m going try this out and let you know.  ‘Much appreciated!

    (0) 
  2. Sining Li
    Hi Dagfinn,
    I feel this can be used to edit page and iView properties. It is much easier to use my notepad than going through portal catalog to edit every page.
    Any thought about that? Thanks
    (0) 
    1. Dagfinn Parnas Post author
      Hi,

      Yes, it should absolutely be doable. Just create a transport package of what you would like to edit, unpack it using the script, change it using what ever tools you have(notepad being the simplest), pack it using the second script and then upload it to the portal as a normal transport package.

      This is especially powerful when you start scripting the changes you want to do with command line tools such as sed and awk.

      (0) 

Leave a Reply