diff --git a/release.sh b/release.sh index cb9cef53..c52eedb9 100755 --- a/release.sh +++ b/release.sh @@ -25,56 +25,64 @@ url_api='https://sourceforge.net/projects/bacnet/files' url_frs="${USERNAME},bacnet@frs.sourceforge.net:/home/frs/project/b/ba/bacnet" url_frs_tools="$url_frs/bacnet-tools" url_frs_source="$url_frs/bacnet-stack" +work_tree=$(mktemp -d 2>/dev/null || mktemp -d -t 'mytmpdir') function bacnet_tag() { echo "Tagging Source Code $tag_name" git tag $tag_name } -function bacnet_build() { +function bacnet_create_work_tree() { + git archive --format=tar $tag_name | tar -x -C $work_tree + echo "work-tree is in $work_tree" +} + +function bacnet_build_apps() { echo "" echo "Build Win32 Apps" export CC=i686-w64-mingw32-gcc export LD=i686-w64-mingw32-ld i686-w64-mingw32-gcc --version - make clean - make -s LEGACY=true win32 + make -C $work_tree clean + make -C $work_tree -s LEGACY=true win32 } -function bacnet_zip() { +function bacnet_zip_apps() { echo "ZIP Win32 Tools" - mkdir -p $tools - cp ./bin/*.exe $tools - cp ./bin/bvlc.bat $tools - cp ./bin/readme.txt $tools - cp ./apps/mstpcap/mstpcap.txt $tools - zip -r $tools.zip $tools - rm $tools/*.exe - rm $tools/*.bat - mv $tools.zip $tools/$tools.zip + mkdir -p $work_tree/$tools + cp $work_tree/bin/*.exe $work_tree/$tools + cp $work_tree/bin/bvlc.bat $work_tree/$tools + cp $work_tree/bin/readme.txt $work_tree/$tools + cp $work_tree/apps/mstpcap/mstpcap.txt $work_tree/$tools + zip -r $work_tree/$tools.zip $work_tree/$tools + rm $work_tree/$tools/*.exe + rm $work_tree/$tools/*.bat + mv $work_tree/$tools.zip $work_tree/$tools/$tools.zip } -function bacnet_source() { +function bacnet_upload_apps() { + echo "Upload Win32 Tools with SCP" + scp -r $work_tree/$tools $url_frs_tools +} + +function bacnet_zip_source() { echo "ZIP Source Code for Tag $tag_name" git archive --format=zip --prefix=$tag_name/ --output=$tag_name.zip $tag_name echo "TGZ Source Code for Tag $tag_name" git archive --format=tar.gz --prefix=$tag_name/ --output=$tag_name.tgz $tag_name - mkdir -p $tag_name - mv $tag_name.zip $tag_name - mv $tag_name.tgz $tag_name - cp CHANGELOG.md $tag_name - cp README.md $tag_name - cp SECURITY.md $tag_name + mkdir -p $work_tree/$tag_name + mv $tag_name.zip $work_tree/$tag_name + mv $tag_name.tgz $work_tree/$tag_name + cp $work_tree/CHANGELOG.md $work_tree/$tag_name + cp $work_tree/README.md $work_tree/$tag_name + cp $work_tree/SECURITY.md $work_tree/$tag_name } -function bacnet_upload() { - echo "Upload Win32 Tools with SCP" - scp -r $tools $url_frs_tools - +function bacnet_upload_source() { echo "Upload Source Code with SCP" - scp -r $tag_name $url_frs_source + scp -r $work_tree/$tag_name $url_frs_source } function bacnet_settings() { @@ -89,25 +97,29 @@ function bacnet_settings() { curl -H $accept -X PUT -d $default_posix -d $api_key $url_source } -menu(){ +menu() { echo -ne " BACnet Stack Release Steps 1) Tag BACnet source code -2) Build BACnet apps for Win32 -3) Zip BACnet apps for Win32 -4) Archive BACnet source code -5) Upload files to bacnet.sf.net -6) Configure bacnet.sf.net download settings +2) Create Work Tree +3) Build BACnet apps for Win32 +4) Zip BACnet apps for Win32 +5) Upload BACnet apps to bacnet.sf.net +6) Archive BACnet source code +7) Upload BACnet source code to bacnet.sf.net +8) Configure bacnet.sf.net download settings 0) Exit Choose an option: " read a case $a in 1) bacnet_tag ; menu ;; - 2) bacnet_build ; menu ;; - 3) bacnet_zip ; menu ;; - 4) bacnet_source ; menu ;; - 5) bacnet_upload ; menu ;; - 6) bacnet_settings ; menu ;; + 2) bacnet_create_work_tree ; menu ;; + 3) bacnet_build_apps ; menu ;; + 4) bacnet_zip_apps ; menu ;; + 5) bacnet_upload_apps ; menu ;; + 6) bacnet_zip_source ; menu ;; + 7) bacnet_upload_source ; menu ;; + 8) bacnet_settings ; menu ;; 0) exit 0 ;; *) echo -e $red"Invalid option."$clear; WrongCommand;; esac