#!/usr/bin/env bash # GPL corresponding source: архив ВСЕГО исходного кода распространяемой сборки # (включая vendor/talk-android — он под GPL). Обязательство GPLv3 §6: к каждой # распространяемой сборке публиковать соответствующий исходник. # # Использование: scripts/package-source.sh [OUT_DIR] (по умолчанию ./dist) set -euo pipefail OUT_DIR="${1:-dist}" mkdir -p "$OUT_DIR" # версия из app/build.gradle (versionName/versionCode) VNAME=$(grep -oE "versionName '[^']+'" app/build.gradle | grep -oE "[0-9][0-9.]*" | head -1) VCODE=$(grep -oE "versionCode [0-9]+" app/build.gradle | grep -oE "[0-9]+" | head -1) REV=$(git rev-parse --short HEAD) NAME="f7cloud-mobile-v${VNAME:-0}-${VCODE:-0}-${REV}-source.tar.gz" # git archive включает всё отслеживаемое дерево (в т.ч. vendor/talk-android, LICENSE, NOTICE.md). # Секреты в дерево не входят (google-services.json/keystore в .gitignore). git archive --format=tar.gz --prefix="f7cloud-mobile-${VNAME}/" -o "$OUT_DIR/$NAME" HEAD echo "Corresponding source: $OUT_DIR/$NAME" echo " размер: $(du -h "$OUT_DIR/$NAME" | cut -f1)" echo " включает vendor/talk-android (GPL), LICENSE, NOTICE.md"