FreeCAD/vagrant/Xenial/generate_yaml.sh
Jean-Marie Verdun b0eea10e8e Add basic vagrant compilation capability
Add 	FREECAD_USER_DATA environment variable required to support snap on ubuntu which is using Apparmor to
	limit application access to filesystem.
Add	automatic snap build on Xenial (ubuntu 16.04) within Vagrant build
Info	Build results are into /home/vagrant/Results (deb + snap
2016-06-16 14:55:59 +02:00

106 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
# snapcraft yaml automatic generation tool for FreeCAD 0.17
# (c) 2017 vejmarie
# Distributed under LGPL v2.0
# Please report bugs at vejmarie@ruggedpod.qyshare.com
rm snapcraft.yaml
lib_list=`ls /opt/local/FreeCAD-0.17/lib/*.so`
mod_list=`ls -ltd $(find /opt/local/FreeCAD-0.17/Mod) | awk '{ print $9}'`
bin_list=`ls -ltd $(find /opt/local/FreeCAD-0.17/bin) | awk '{ print $9}'`
data_list=`ls -ltd $(find /opt/local/FreeCAD-0.17/data) | awk '{ print $9}'`
python_list=`ls -ltd $(find /usr/lib/python2.7) | awk '{ print $9}'`
pyside_list=`ls -ltd $(find /usr/share/PySide/typesystems) | awk '{ print $9}'`
python_binary=`ls /usr/bin/python /usr/bin/py*2.7`
syslib=`ls -ltd $(find /usr/lib/x86_64-linux-gnu/dri) | awk '{ print $9}'`
syslib2=`ls -ltd $(find /usr/lib/x86_64-linux-gnu/gtk-2.0) | awk '{ print $9}'`
syslib3=`ls -ltd $(find /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0) | awk '{ print $9}'`
syslib4=`ls -ltd $(find /usr/lib/locale) | awk '{ print $9}'`
syslib5=`ls -ltd $(find /usr/share/X11/locale) | awk '{ print $9}'`
syslib6=`ls -ltd $(find /usr/lib/x86_64-linux-gnu/*gtk*) | awk '{ print $9}'`
syslib7=`ls -ltd $(find /usr/share/glib-2.0) | awk '{ print $9}'`
syslib8=`ls -ltd $(find /usr/share/i18n/locales) | awk '{ print $9}'`
echo "
name: freecad
version: 0.17
summary: development version
description: development version This version is far from being bug free but integrates the latest FreeCAD technologies
parts:
example-part:
plugin: copy
files:
bin/launcher : bin/launcher" >> snapcraft.yaml
# bin/FreeCAD : opt/local/FreeCAD-0.17/bin/FreeCAD" >> snapcraft.yaml
for i in $bin_list
do
if [ ! -d "$i" ]
then
second_name=`echo $i | sed 's/\///'`
echo " $i : $second_name" >> snapcraft.yaml
fi
done
for i in $lib_list
do
second_name=`echo $i | sed 's/\///'`
echo " $i : $second_name" >> snapcraft.yaml
done
for i in $mod_list
do
if [ ! -d "$i" ]
then
second_name=`echo $i | sed 's/\///'`
echo " $i : $second_name" >> snapcraft.yaml
fi
done
for i in $data_list
do
if [ ! -d "$i" ]
then
second_name=`echo $i | sed 's/\///'`
echo " $i : $second_name" >> snapcraft.yaml
fi
done
for i in $python_list $pyside_list
do
if [ ! -d "$i" ]
then
second_name=`echo $i | sed 's/\///'`
echo " $i : $second_name" >> snapcraft.yaml
fi
done
for i in $python_binary
do
if [ ! -d "$i" ]
then
second_name=`echo $i | sed 's/\///'`
echo " $i : $second_name" >> snapcraft.yaml
fi
done
for i in $syslib $syslib2 $syslib3 $syslib4 $syslib5 $syslib6 $syslib7 $syslib8
do
if [ ! -d "$i" ]
then
second_name=`echo $i | sed 's/\///'`
echo " $i : $second_name" >> snapcraft.yaml
fi
done
# python:
# plugin: python2
echo "
snap:
- bin/launcher
- opt/local/FreeCAD-0.17/bin/FreeCAD
- opt
- usr" >> snapcraft.yaml
for i in $lib_list
do
second_name=`echo $i | sed 's/\///'`
echo " - $second_name" >> snapcraft.yaml
done
echo "
apps:
FreeCAD:
command: bin/launcher
plugs: [ locale-control,x11,opengl,network-bind,home,unity7 ]
" >> snapcraft.yaml