#!/bin/bash # This scripts pull the latest Azure Storage SDK and update this multiapi package accordingly. workdir=$(cd $(dirname $0); pwd) cd $workdir if [ ! -d venv ]; then python -m virtualenv venv . venv/bin/activate pip install azure-storage-file-datalake azure-storage-blob azure-storage-file-share azure-storage-queue -U fi src_root=$(cd venv/lib/$(ls venv/lib); pwd)/site-packages/azure/storage for service in blob fileshare filedatalake queue; do ver=$(find venv -name 'version.py' | grep $service | xargs grep 'VERSION') ver=${ver#VERSION = \"} if [ -z "$ver" ]; then ver=$(find venv -name '_configuration.py' | grep $service | xargs grep 'version' | head -n 1) ver=${ver#*self.version = \"} fi ver=${ver%\"*} ver=${ver//-/_} tgt=../azure/multiapi/storagev2/$service/v$ver mkdir -p $tgt src=$src_root/$service cp -R $src/. $tgt for f in `find $tgt -name '*.py'`; do echo Updating $f # remove BOM sed -i '1s/^\xEF\xBB\xBF//' $f if [ "$service" = "filedatalake" ]; then echo "filedatalake" default="2019_07_07" if [[ "$ver" > "$default" ]]; then default=$ver fi sed -i "s/from azure.storage.blob import/from azure.multiapi.storagev2.blob.v$default import/g" $f sed -i "s/from azure.storage.blob./from azure.multiapi.storagev2.blob.v$default./g" $f fi namespace=azure.storage.$service sed -i "s/from $namespace./from ./g" $f sed -i "s/from ...core.exceptions/from azure.core.exceptions/g" $f done done