diff --git a/build.sh b/build.sh index 1855cd6..2a4df5e 100755 --- a/build.sh +++ b/build.sh @@ -45,21 +45,49 @@ echo "App packaged successfully." cd .. echo "Package(s) deploy..." -mkdir pkg -cp project/dist/*.deb pkg/ +INCOMING_DIR="repo/incoming" + +mkdir -p ${INCOMING_DIR} + +READY_SUFFIX=".ready" +DIST_DIR="project/dist" +for ENTRY in "${DIST_DIR}"/*.deb; do + # If is not a file skip + if [ -f "${ENTRY}" ]; then + FILENAME=$(basename "${ENTRY}") + #scp "${ENTRY}" reposerver:"${INCOMING_DIR}/${FILENAME}" + #scp "${ENTRY}" reposerver:"${INCOMING_DIR}/${FILENAME}${READY_SUFFIX}" + cp "${ENTRY}" "${INCOMING_DIR}/${FILENAME}" + cp "${ENTRY}" "${INCOMING_DIR}/${FILENAME}${READY_SUFFIX}" + fi +done echo "Moving package(s) to the repo..." -mkdir -p repo -mv pkg/*.deb repo/ +MAIN_DIR="repo/main" +mkdir -p "${MAIN_DIR}" -cd repo +for ENTRY in "${INCOMING_DIR}"/*"${READY_SUFFIX}"; do + # If is not a file skip + if [ -f "${ENTRY}" ]; then + FILENAME_DEB=$(basename --suffix="${READY_SUFFIX}" "${ENTRY}") + BASEDIRPATH=$(dirname "${ENTRY}") + mv "${BASEDIRPATH}/${FILENAME_DEB}" "${MAIN_DIR}/${FILENAME_DEB}" + rm "${ENTRY}" + fi +done -echo "Updating the repo..." -apt-ftparchive packages . > Packages -gzip -k -f Packages -apt-ftparchive release . > Release +echo "Installing repository build dependencies (apt)..." +apt-get -qq -y --no-install-recommends install apt-utils > /dev/null -cd .. +TEMP_DIR="$(mktemp -d)" + +echo "Updating the repo..." +initial_position="$(pwd)" +cd repo +apt-ftparchive packages . > "${TEMP_DIR}/Packages" +cd "${initial_position}" +gzip -k -f "${TEMP_DIR}/Packages" --to-stdout > "${TEMP_DIR}/Packages.gz" +apt-ftparchive release "${TEMP_DIR}" > "${TEMP_DIR}/Release" apt-get -qq -y --no-install-recommends install gpg gpg-agent @@ -101,15 +129,17 @@ if [ -z ${GPG_SUBKEY_ID+x} ]; then GPG_SUBKEY_ID="$(gpg --list-secret-key --with-subkey-fingerprint --with-colons | awk -F: '$1 == "fpr" {print $10;}' | sed -n '2 p')" fi -if [ ! -f repo/KEY.pub ];then +if [ ! -f repo/key.pub.asc ];then echo "Public key not published. Generating and publishing it..." - gpg --armor --export "${GPG_SUBKEY_ID}" > repo/KEY.pub + gpg --armor --export "${GPG_SUBKEY_ID}" > repo/key.pub.asc fi echo "Signing the repo..." -gpg --passphrase-file keys/passphrase --pinentry-mode loopback --default-key "${GPG_SUBKEY_ID}" -abs -o - repo/Release > repo/Release.gpg -gpg --passphrase-file keys/passphrase --pinentry-mode loopback --default-key "${GPG_SUBKEY_ID}" --clearsign -o - repo/Release > repo/InRelease +gpg --passphrase-file keys/passphrase --pinentry-mode loopback --default-key "${GPG_SUBKEY_ID}" -abs -o - "${TEMP_DIR}/Release" > "${TEMP_DIR}/Release.gpg" +gpg --passphrase-file keys/passphrase --pinentry-mode loopback --default-key "${GPG_SUBKEY_ID}" --clearsign -o - "${TEMP_DIR}/Release" > "${TEMP_DIR}/InRelease" echo "Done." -#echo "deb file:/repo /" > /etc/apt/sources.list.d/custom-repo.list +echo "Committing changes..." +mv "${TEMP_DIR}"/* repo/ +#echo "deb file:/repo /" > /etc/apt/sources.list.d/custom-repo.list diff --git a/getsauce.sh b/getsauce.sh index 9ba52b2..07d2656 100755 --- a/getsauce.sh +++ b/getsauce.sh @@ -51,4 +51,3 @@ else echo "Not valid mode" exit 1 fi -