summaryrefslogtreecommitdiffstats
path: root/debian/_buildscripts
diff options
context:
space:
mode:
Diffstat (limited to 'debian/_buildscripts')
-rwxr-xr-xdebian/_buildscripts/local/scripts/_build_common.sh19
-rw-r--r--debian/_buildscripts/local/scripts/_build_config_template.sh1
-rwxr-xr-xdebian/_buildscripts/local/scripts/create_repo.sh55
3 files changed, 71 insertions, 4 deletions
diff --git a/debian/_buildscripts/local/scripts/_build_common.sh b/debian/_buildscripts/local/scripts/_build_common.sh
index 72649dc89..60f589acf 100755
--- a/debian/_buildscripts/local/scripts/_build_common.sh
+++ b/debian/_buildscripts/local/scripts/_build_common.sh
@@ -38,6 +38,15 @@ function init_common()
# Check script folder
SCRIPT_DIR=$(dirname $(readlink -f "$0"))
+ # Prevent the script to be run from TDE packaging repo
+ REPO_URL=$(git config --get remote.origin.url 2>/dev/null)
+ if [ ! -z "$REPO_URL" ] && [ -z "${REPO_URL##*tde-packaging}" ]; then
+ echo -e "${CYellow} --- ERROR ---${CNone}"
+ echo "This script cannot be run from the TDE packaging repository."
+ echo "Please follow the instructions provided, then rerun this script."
+ exit 1
+ fi
+
# Read config settings
CFG_FILE=$SCRIPT_DIR/build_config.sh
if [ -f "$CFG_FILE" ]; then
@@ -47,7 +56,7 @@ function init_common()
echo "Creating TDE build configuration file from template as $CFG_FILE."
echo "Please check and modify as required, then rerun this script."
cp "$SCRIPT_DIR/_build_config_template.sh" "$CFG_FILE"
- exit 1
+ exit 2
fi
# TDE root folder must exist
@@ -56,8 +65,9 @@ function init_common()
echo "A valid TDE root folder could not be located. Something is wrong with your configuration"
echo "in the config file $CFG_FILE"
echo "Please check and modify the TDE_DIR variable as required, then rerun this script."
- exit 2
+ exit 3
fi
+
# Search for main TDE repo
cd "$TDE_DIR/$CFG_GIT_TDE_MAIN" &>/dev/null
CURR_DIR=$(git rev-parse --show-toplevel 2>/dev/null)
@@ -66,8 +76,9 @@ function init_common()
echo "Main TDE repo could not be located. Something is wrong with your configuration"
echo "in the config file $CFG_FILE"
echo "Please check and modify the TDE_DIR variable as required, then rerun this script."
- exit 3
+ exit 4
fi
+
# Search for TDE packaging repo
cd "$TDE_DIR/$CFG_GIT_TDE_PACKAGING" &>/dev/null
CURR_DIR=$(git rev-parse --show-toplevel 2>/dev/null)
@@ -76,7 +87,7 @@ function init_common()
echo "TDE packaging repo could not be located. Something is wrong with your configuration"
echo "in the config file $CFG_FILE"
echo "Please check and modify the TDE_DIR variable as required, then rerun this script."
- exit 4
+ exit 5
fi
SCRIPT_LOG_DIR=$TDE_DIR/$CFG_SCRIPT_LOG_DIR
diff --git a/debian/_buildscripts/local/scripts/_build_config_template.sh b/debian/_buildscripts/local/scripts/_build_config_template.sh
index 589278eba..d0c5a9d2c 100644
--- a/debian/_buildscripts/local/scripts/_build_config_template.sh
+++ b/debian/_buildscripts/local/scripts/_build_config_template.sh
@@ -22,6 +22,7 @@ TDE_DIR=""
CFG_SCRIPT_LOG_DIR="0_logs"
CFG_GIT_DIR="1_git"
CFG_BUILD_DIR="2_build"
+CFG_REPO_DIR="3_repo"
CFG_GIT_TDE_MAIN="$CFG_GIT_DIR/tde/main"
CFG_GIT_TDE_PACKAGING="$CFG_GIT_DIR/tde-packaging/$DISTRO/$D_VERSION"
CFG_GIT_EXTRA_DEPENDENCIES="$CFG_GIT_DIR/edeps"
diff --git a/debian/_buildscripts/local/scripts/create_repo.sh b/debian/_buildscripts/local/scripts/create_repo.sh
new file mode 100755
index 000000000..3fc2f0238
--- /dev/null
+++ b/debian/_buildscripts/local/scripts/create_repo.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+#
+# Create/update TDE local debian repository
+#
+
+# Load common code and initialization
+. ./_build_common.sh
+init_common
+
+#----------------------------
+# Check command line arguments
+parm_MAKE_BACKUP="n"
+for arg in $@; do
+ if [ "$arg" = "-b" ]; then # backup old repository
+ parm_MAKE_BACKUP="y"
+ fi
+done
+
+
+#----------------------------
+# Create/update TDE local debian repository
+echo -e "${CLightCyan}#### TDE local repository creation begin ####${CNone}"
+ARCH_PATH="dists/$D_VERSION/main/binary-$ARCHITECTURE"
+REPO_DIR="$TDE_DIR/$CFG_REPO_DIR"
+REPO_DIR_BACKUP="$REPO_DIR.backup"
+REPO_PKG_DIR="$REPO_DIR/$ARCH_PATH"
+TDE_DEBS_DIR="$TDE_DIR/$CFG_TDE_DEBS_DIR"
+
+# Backup
+if [ "$parm_MAKE_BACKUP" = "y" ] && [ -d "$REPO_DIR" ]; then
+ echo -e "${CYellow}> Backing up old repository${CNone}"
+ rm -R "$REPO_DIR_BACKUP" &>/dev/null
+ mv "$REPO_DIR" "$REPO_DIR_BACKUP" &>/dev/null
+ echo "Copy of the old repository available at \"$REPO_DIR_BACKUP\""
+fi
+
+# Create repository
+echo -e "${CYellow}> Creating new repository${CNone}"
+if [ -d "$REPO_DIR" ]; then
+ rm -R "$REPO_DIR" &>/dev/null
+fi
+mkdir -p "$REPO_PKG_DIR"
+rsync -aHS --exclude="*/src/*.xz" --exclude="*/src/*.dsc" --exclude="*/src/*.changes" --exclude="Packages*" "$TDE_DEBS_DIR/" "$REPO_PKG_DIR/"
+
+# Create package index file
+echo -e "${CYellow}> Creating package index file${CNone}"
+cd "$REPO_DIR"
+dpkg-scanpackages "./$ARCH_PATH" | gzip -9c > "./$ARCH_PATH/Packages.gz"
+
+
+#----------------------------
+# Repository created
+echo -e "${CLightGreen}#### TDE local repository created ####${CNone}"
+cd "$SCRIPT_DIR"
+exit 0