view docker/do_all.sh @ 138:274af514a5cf

flatpak: reworked packages + made a building script: a new `build_manifest.py` script can now be used to generate flatpak manifests for every frontend of SàT. The manifest can be used both for development versions and stable ones. Templates files (in the form `_tmp_<app-id>.json`) are used to set building instructions. A common runtime specific to SàT has been abandoned following a discussion on the official mailing list. A small wrapper is now used to launch backend automatically if it's not found. Desktop and app metadata have been added for Cagou. Jp and Primitivus don't have appdata and desktop files yet.
author Goffi <goffi@goffi.org>
date Sat, 22 Jun 2019 15:59:07 +0200
parents bcba1966e6db
children
line wrap: on
line source

#!/bin/sh

# This script build all container in the right order
# Copyright (C) 2014 Jérôme Poisson (goffi@goffi.org)

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

DIRS="base media sat_nomedia sat jp primitivus sat_pubsub prosody salut libervia data"
ACCOUNT="salutatoi"

ori_dir=$(pwd)

if [ $# -eq 0 ]; then
	cmd="build"
else
	case $1 in
		build)
			cmd="build"
			BEFORE="-t"
			AFTER="."
			;;
		push)
			cmd="push"
			TAG=":latest"
			;;
		pull)
			cmd="pull"
			TAG=":latest"
			;;
		*)
			printf "Invalid command ($1)\n"
			exit 1
			;;
	esac
	
	shift
fi

for cont_dir in $DIRS; do
	cont_name=$(grep -o "Salut à Toi/[^ ]\+" $cont_dir/Dockerfile | sed "s&Salut à Toi/&&" | tr '[:upper:]' '[:lower:]')
	cd "$cont_dir"
	printf "\n==> Doing a $cmd for $ACCOUNT/$cont_name in $cont_dir with extra [$@] <===\n\n"
	docker $cmd $BEFORE "$ACCOUNT/${cont_name}${TAG}" "$@" $AFTER
	err=$?
	cd "$ori_dir"
	if [ $err -ne 0 ]; then
		printf "$cmd of $cont_name failed (exit code $err), exiting\n"
		exit 1
	fi
done