summaryrefslogtreecommitdiff
path: root/setup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'setup.sh')
-rwxr-xr-xsetup.sh111
1 files changed, 111 insertions, 0 deletions
diff --git a/setup.sh b/setup.sh
new file mode 100755
index 0000000..c0b6230
--- /dev/null
+++ b/setup.sh
@@ -0,0 +1,111 @@
+#!/usr/bin/env bash
+
+set -e
+BUILDCONF=conf/local.conf
+BBLAYERS=conf/bblayers.conf
+
+if [ "$1" != "--update" ]; then
+ echo ""
+ echo "Setting up git hooks..."
+ ln -s ../../scripts/git-hooks/post-merge .git/hooks/post-merge || true
+ ln -s ../../scripts/git-hooks/post-checkout .git/hooks/post-checkout || true
+ ln -s ../../scripts/git-hooks/pre-commit .git/hooks/pre-commit || true
+ ln -s ../../scripts/git-hooks/pre-push .git/hooks/pre-push || true
+fi
+
+echo ""
+echo "Updating git submodules..."
+git submodule update --init --recursive
+
+# Apply patches
+for f in $(ls patches) ; do
+ if patch --dry-run -Np1 < patches/$f ; then
+ patch -Np1 < patches/$f
+ fi
+done
+
+# Remove yocto-linux bbappend
+rm -f layers/meta-virtualization/recipes-kernel/linux/linux-yocto_*.bbappend
+
+if [ "$1" != "--update" ]; then
+ if [ ! -d build/conf ]; then
+ mkdir -p build/conf
+ fi
+
+ echo ""
+ response=y
+ test -f ${BUILDCONF} && read -p "Overwrite ${BUILDCONF} with defaults? (y/N) " response
+ if [[ $response =~ ^y$ || $response =~ ^yes$ ]]; then
+ echo "Creating default bitbake configuration..."
+ cp layers/meta-mlinux/contrib/local.conf conf/
+ else
+ echo "Leaving existing ${BUILDCONF} alone."
+ fi
+
+ root_pwd_hash=$(egrep '^MTADM_PASSWORD_HASH[[:space:]]*=' ${BUILDCONF} || true)
+ if ((${#root_pwd_hash} == 0)) ; then
+ if [[ "$MTADM_PASSWORD" ]] ; then
+ pass=$MTADM_PASSWORD
+ else
+ pass=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 2>/dev/null | head -c${1:-8};echo)
+ fi
+ salt="$(openssl rand -base64 128 2>/dev/null)"
+ hash="$(openssl passwd -1 -salt "$salt" "$pass")"
+ echo "MTADM_PASSWORD = \"$pass\"" >password.txt
+ echo "HASH = \"$hash\"" >>password.txt
+ sed -ri "/MTADM_PASSWORD_HASH[[:space:]]=/d" ${BUILDCONF} || true
+ echo "MTADM_PASSWORD_HASH = \"$hash\"" >>${BUILDCONF}
+ sed -ri "/MTADM_PASSWORD[[:space:]]=/d" ${BUILDCONF} || true
+ echo "MTADM_PASSWORD = \"$pass\"" >>${BUILDCONF}
+ fi
+
+ echo ""
+ response=y
+ test -f $BBLAYERS && read -p "Overwrite $BBLAYERS with defaults? (y/N) " response
+ if [[ $response =~ ^y$ || $response =~ ^yes$ ]]; then
+ echo "Copying default bblayers..."
+ OEROOT=$(pwd)
+ sed -e "s?__OEROOT__?${OEROOT}?" conf/bblayers.conf.mlinux >$BBLAYERS
+ else
+ echo "Leaving existing $BBLAYERS alone."
+ fi
+
+ echo ""
+ echo "Creating user-layer..."
+ mkdir -p layers/user-layer/conf
+ mkdir -p layers/user-layer/recipes-core
+
+ echo ""
+ response=y
+ test -f layers/user-layer/conf/layer.conf && read -p "Overwrite layers/user-layer/conf/layer.conf with defaults? (y/N) " response
+ if [[ $response =~ ^y$ || $response =~ ^yes$ ]]; then
+ echo "Creating default user-layer configuration..."
+ cp layers/meta-mlinux/contrib/user-layer.conf layers/user-layer/conf/layer.conf
+ else
+ echo "Leaving existing layers/user-layer/conf/layer.conf alone."
+ fi
+
+ echo ""
+ echo "Creating directory structure..."
+ mkdir -p build
+ mkdir -p downloads
+fi
+
+echo ""
+echo "Setup Done."
+echo ""
+echo "oe-init-build-env will set the current directory to build"
+echo "One must be within the build tree to run bitbake."
+echo ""
+echo "To build mlinux-base-image:"
+echo " source oe-init-build-env"
+echo " machine=mtcdt bitbake mlinux-base-image"
+echo " or (requires Redpine sources)"
+echo " machine=mtcdt bitbake mlinux-commisioning-image"
+echo ""
+echo "To build mlinux-mtcap-image:"
+echo " source oe-init-build-env"
+echo " MACHINE=mtcap bitbake mlinux-mtcap-image"
+echo " or"
+echo " MACHINE=mtcap bitbake mlinux-mtcap-commisioning-image"
+