Diff of /trunk/wharfie/lib/actions.py [000000] .. [r13]  Maximize  Restore

Switch to side-by-side view

--- a
+++ b/trunk/wharfie/lib/actions.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+#
+# Copyright 2017 Ingo Hornberger <ingo_@gmx.net>
+#
+# This software is licensed under the MIT License
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy of this
+# software and associated documentation files (the "Software"), to deal in the Software
+# without restriction, including without limitation the rights to use, copy, modify,
+# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to the following
+# conditions:
+#
+# The above copyright notice and this permission notice shall be included in all copies
+# or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+# OR OTHER DEALINGS IN THE SOFTWARE.
+#
+################################################################################
+
+def run(name, dep, cmd):
+    makeTarget = {
+        'comment' : "%s %s" % (cmd[0], cmd[1]),
+        'name': name,
+        'dep': dep,
+        'trgcmd': cmd[1]
+    };
+    return makeTarget;
+
+def run_host(name, dep, cmd):
+    makeTarget = {
+        'comment' : "%s %s" % (cmd[0], cmd[1]),
+        'name': name,
+        'dep': dep,
+        'hostcmd': cmd[1]
+    };
+    return makeTarget;
+
+def add(name, dep, cmd):
+    src,dst = cmd[1].lstrip().split(" ")
+    dep.append(src)
+    myHostCmd = '''
+        dest="$(pwd)";
+        cd ../;
+        mkdir -p $(dirname "${dest}/%s");
+        cp -R --preserve=mode %s "${dest}/%s"''' % (dst, src, dst)
+    
+    makeTarget = {
+        'comment' : "%s %s" % (cmd[0], cmd[1]),
+        'name': name,
+        'dep': dep,
+        'hostcmd': myHostCmd
+    };
+    return makeTarget;
+
+def source(name, dep, cmd):
+    myTrgCmd = '''
+        mkdir /sources;
+        cd /sources;
+        [ ! -f .pkg.list ] && 
+            dpkg-query -f \'${binary:Package}\\n\' -W > .pkg.list;
+        apt-get install -y dpkg-dev;
+        cat .pkg.list | xargs -n 1 apt-get source'''
+    myHostCmd = 'tar -cf ../' + cmd[1].lstrip() + ' sources;'
+    makeTarget = {
+        'comment' : "%s %s" % (cmd[0], cmd[1]),
+        'name': name,
+        'dep': dep,
+        'trgcmd': myTrgCmd,
+        'hostcmd': myHostCmd,
+        'temporary': True
+    };
+    return makeTarget;
+
+def license(name, dep, cmd):
+    myTrgCmd = '''
+        mkdir /licenses;
+        for i in /usr/share/doc/*/;
+        do [ -f $i/copyright ] &&
+            cp $i/copyright licenses/$(basename $i).txt ||
+            echo $(basename $i) >> licenses/___MISSING___.txt;
+        done'''
+    myHostCmd = 'tar -cf ../' + cmd[1].lstrip() + ' licenses;'
+    makeTarget = {
+        'comment' : "%s %s" % (cmd[0], cmd[1]),
+        'name': name,
+        'dep': dep,
+        'trgcmd': myTrgCmd,
+        'hostcmd': myHostCmd,
+        'temporary': True
+    };
+    return makeTarget;
+
+def toolchain(name, dep, cmd):
+    myTrgCmd = '''
+        apt-get install -y libc6-dev;
+        [ -d ./usr/lib/arm-linux-gnueabi*/ ] &&
+            (cd ./usr/lib/arm-linux-gnueabi*/; ln -s crt1.o crt0.o)'''
+    myHostCmd = 'rm .hst.sh; mkdir target; mv ./* target; mkdir host; (cd host; tar -xf ../../debian_toolchain.tar); cp ../debian_toolchain_env.sh env.sh; tar -cf ../' + cmd[1].lstrip() + ' .;'
+    dep.append('debian_toolchain.tar')
+    dep.append('debian_toolchain_env.sh')
+    makeTarget = {
+        'comment' : "%s %s" % (cmd[0], cmd[1]),
+        'name': name,
+        'dep': dep,
+        'trgcmd': myTrgCmd,
+        'hostcmd': myHostCmd,
+        'temporary': True
+    };
+