From f706a4a63637e7d8fdb6a5e7e1c97c2bea9dd42f Mon Sep 17 00:00:00 2001
From: Dilawar Singh <dilawars@ncbs.res.in>
Date: Tue, 4 Aug 2015 17:13:02 +0530
Subject: [PATCH] Added moosegui scipt.

---
 .../build_debian_locally_on_ubuntu.sh         |  5 ++
 packaging_scripts/build_debian_using_bzr.sh   | 36 ++++++++
 packaging_scripts/build_pypi.sh               | 20 +++++
 packaging_scripts/cmake_sanity_check.py       | 87 +++++++++++++++++++
 packaging_scripts/moosegui                    |  2 +
 .../packages_local_using_cmake.sh             | 13 +++
 packaging_scripts/pbuilder_debian.sh          | 36 ++++++++
 7 files changed, 199 insertions(+)
 create mode 100755 packaging_scripts/build_debian_locally_on_ubuntu.sh
 create mode 100755 packaging_scripts/build_debian_using_bzr.sh
 create mode 100755 packaging_scripts/build_pypi.sh
 create mode 100755 packaging_scripts/cmake_sanity_check.py
 create mode 100755 packaging_scripts/moosegui
 create mode 100755 packaging_scripts/packages_local_using_cmake.sh
 create mode 100755 packaging_scripts/pbuilder_debian.sh

diff --git a/packaging_scripts/build_debian_locally_on_ubuntu.sh b/packaging_scripts/build_debian_locally_on_ubuntu.sh
new file mode 100755
index 00000000..4cebfaa8
--- /dev/null
+++ b/packaging_scripts/build_debian_locally_on_ubuntu.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+(
+    cd ..
+    debuild -uc -us | tee $0.log
+)
diff --git a/packaging_scripts/build_debian_using_bzr.sh b/packaging_scripts/build_debian_using_bzr.sh
new file mode 100755
index 00000000..fecfe772
--- /dev/null
+++ b/packaging_scripts/build_debian_using_bzr.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+# This script is for launchpad.
+(
+set -e
+set -o xtrace
+cd ..
+cat > moose.recipe <<EOF
+# bzr-builder format 0.3 deb-version {debupstream}+{revno}
+lp:moose
+EOF
+# one can do nesting here.
+if [ $# -gt 0 ]; then
+    if [[ "$1" == "update" ]]; then
+        echo "Fetching repo and creating tar-ball"
+        bzr dailydeb --allow-fallback-to-native moose.recipe .. | tee $0.log
+    elif [[ "$1" == "pbuilder" ]]; then
+        bzr dailydeb --allow-fallback-to-native moose.recipe .. | tee $0.log
+        sudo -E pbuilder build ../*.dsc | tee $0.log
+        exit
+    fi
+fi
+
+tarFile=`find .. -type f -maxdepth 1 -name "moose_3.0*.tar.gz"`
+echo "Found tarfiles are $tarFile"
+if [[ ! $tarFile ]]; then
+    echo "I could not file a tar.gz file. Can't continue"
+    echo "++ Cleaning previous mess"
+    rm -rf ../moose_3.0* ../moose-{*
+    echo "++ Let me download a fresh one"
+    bzr dailydeb --allow-fallback-to-native moose.recipe .. | tee $0.log
+fi
+
+rm -f moose.recipe
+echo "Building debian package"
+bzr builddeb -- -uc -us | tee $0.log
+)
diff --git a/packaging_scripts/build_pypi.sh b/packaging_scripts/build_pypi.sh
new file mode 100755
index 00000000..9071bfef
--- /dev/null
+++ b/packaging_scripts/build_pypi.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+set -e
+# This creates a package for pip. For testing purpose
+moose_dir=moose-3.0
+( 
+    cd ..  
+    svn export --force . scripts/$moose_dir 
+)
+(
+    cp setup.py $moose_dir/
+    cd $moose_dir
+    echo "Creating new archive"
+    if [ -f dist/$moose_dir.tar.gz ]; then
+        rm -f dist/*.tar.gz
+    fi
+    python setup.py sdist -vv | tee $0.log
+    echo "Created new archive"
+    sudo pip install dist/*.tar.gz --no-clean | tee $0.log
+    echo "Do the rest in $moose_dir"
+)
diff --git a/packaging_scripts/cmake_sanity_check.py b/packaging_scripts/cmake_sanity_check.py
new file mode 100755
index 00000000..e39e6d8a
--- /dev/null
+++ b/packaging_scripts/cmake_sanity_check.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+"""cmake_sanity_check.py: Check if Cmake files are ok.
+
+Last modified: Sat Jan 18, 2014  05:01PM
+
+"""
+    
+__author__           = "Dilawar Singh"
+__copyright__        = "Copyright 2013, Dilawar Singh and NCBS Bangalore"
+__credits__          = ["NCBS Bangalore"]
+__license__          = "GNU GPL"
+__version__          = "1.0.0"
+__maintainer__       = "Dilawar Singh"
+__email__            = "dilawars@ncbs.res.in"
+__status__           = "Development"
+
+import sys
+import os
+import re
+from collections import defaultdict
+
+makefiles = {}
+cmakefiles = {}
+makedirs = set()
+cmakedirs = set()
+
+def check(d):
+    searchMakefiles(d)
+    checkMissingCMake()
+    checkSrcs()
+
+def checkMissingCMake():
+    if (makedirs - cmakedirs):
+        print("[Failed] Test 1")
+        print("Following directories have Makefile but not a CMakeFiles.txt file.")
+        print("%s" % "\t\n".join(makedirs - cmakedirs))
+
+def searchMakefiles(d):
+    for d, subd, fs in os.walk(d):
+        if "CMakeLists.txt" in fs:
+            cmakedirs.add(d)
+            cmakefiles[d] = fs
+        if "Makefile" in fs:
+            makedirs.add(d)
+            makefiles[d] = fs
+        else: pass
+
+def checkSrcs():
+    objPat = re.compile(r"\w+\.o")
+    srcPat = re.compile(r"\w+\.cpp")
+    srcs = []
+    csrcs = []
+    for d in makefiles:
+        with open(os.path.join(d, "Makefile"), "r") as f:
+            txt = f.read()
+            srcs = objPat.findall(txt)
+        try:
+            with open(os.path.join(d, "CMakeLists.txt"), "r") as f:
+                txt = f.read()
+                csrcs = srcPat.findall(txt)
+        except:
+            print("Dir {} does not have CMakeLists.txt".format(d))
+            csrcs = []
+        #print("[TEST 2] Checking if CMake is creating extra objects")
+        for csr in csrcs:
+            objName = csr.replace(".cpp", ".o")
+            if objName in srcs:
+                pass
+            else:
+                #print(" Failed: In dir {}, CMake is creating extra object {}".format(d, objName))
+
+                pass
+        print("[TEST 3] Checking if CMake is missing some objects")
+        for obj in srcs:
+            srcName = obj.replace(".o", ".cpp")
+            if srcName in csrcs: pass
+            else:
+                print(" Failed: In dir {}, CMake is missing object {}".format(d,
+                    srcName))
+    
+def main():
+    dir = sys.argv[1]
+    check(dir)
+
+
+if __name__ == '__main__':
+    main()
diff --git a/packaging_scripts/moosegui b/packaging_scripts/moosegui
new file mode 100755
index 00000000..4d8e95bd
--- /dev/null
+++ b/packaging_scripts/moosegui
@@ -0,0 +1,2 @@
+#!/bin/bash
+( cd /usr/share/moose/gui && python mgui.py )
diff --git a/packaging_scripts/packages_local_using_cmake.sh b/packaging_scripts/packages_local_using_cmake.sh
new file mode 100755
index 00000000..3504983a
--- /dev/null
+++ b/packaging_scripts/packages_local_using_cmake.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -e
+set -x
+(
+cd ..
+mkdir -p _build
+cd _build
+cmake ..
+make | tee $0.log
+cpack -G DEB
+sudo dpkg -i moose*.deb
+moosegui
+)
diff --git a/packaging_scripts/pbuilder_debian.sh b/packaging_scripts/pbuilder_debian.sh
new file mode 100755
index 00000000..fecfe772
--- /dev/null
+++ b/packaging_scripts/pbuilder_debian.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+# This script is for launchpad.
+(
+set -e
+set -o xtrace
+cd ..
+cat > moose.recipe <<EOF
+# bzr-builder format 0.3 deb-version {debupstream}+{revno}
+lp:moose
+EOF
+# one can do nesting here.
+if [ $# -gt 0 ]; then
+    if [[ "$1" == "update" ]]; then
+        echo "Fetching repo and creating tar-ball"
+        bzr dailydeb --allow-fallback-to-native moose.recipe .. | tee $0.log
+    elif [[ "$1" == "pbuilder" ]]; then
+        bzr dailydeb --allow-fallback-to-native moose.recipe .. | tee $0.log
+        sudo -E pbuilder build ../*.dsc | tee $0.log
+        exit
+    fi
+fi
+
+tarFile=`find .. -type f -maxdepth 1 -name "moose_3.0*.tar.gz"`
+echo "Found tarfiles are $tarFile"
+if [[ ! $tarFile ]]; then
+    echo "I could not file a tar.gz file. Can't continue"
+    echo "++ Cleaning previous mess"
+    rm -rf ../moose_3.0* ../moose-{*
+    echo "++ Let me download a fresh one"
+    bzr dailydeb --allow-fallback-to-native moose.recipe .. | tee $0.log
+fi
+
+rm -f moose.recipe
+echo "Building debian package"
+bzr builddeb -- -uc -us | tee $0.log
+)
-- 
GitLab