mirror of https://github.com/Chizi123/Arch-autobuild-repo.git

Chizi123
2019-07-14 a45f88d01ccf5cb44c805da793a3070d6629724c
Added parallel compression and limited number of old packages
2 files modified
52 ■■■■■ changed files
README.org 2 ●●●●● patch | view | raw | blame | history
build.sh 50 ●●●●● patch | view | raw | blame | history
README.org
@@ -10,6 +10,8 @@
Be sure to sign in to git in the chroot and set ~git config --global credential.helper store~, with an appropriate remote repository.
You may also want to set ~MAKEFLAGS="-j$(nproc)"~ within the chroot to enable parallel compilation.
For xz compression, add the ~--threads=0~ option to COMPRESSXZ such that it reads ~COMPRESSXZ=(xz -c -z - --threads=0)~.
ccache may be useful to decrease the times of git packages, due to the little changes.
Script coming soon.
* Usage
build.sh
@@ -1,5 +1,8 @@
#!/bin/bash
#Number of old packages to store, should be at least 1
NUM_BACK=5
function newest_matching_file
{
    # Use ${1-} instead of $1 in case 'nounset' is set
@@ -34,6 +37,40 @@
    return 0
}
function oldest_matching_file
{
    # Use ${1-} instead of $1 in case 'nounset' is set
    local -r glob_pattern=${1-}
    if (( $# != 1 )) ; then
        echo 'usage: oldest_matching_file GLOB_PATTERN' >&2
        return 1
    fi
    # To avoid printing garbage if no files match the pattern, set
    # 'nullglob' if necessary
    local -i need_to_unset_nullglob=0
    if [[ ":$BASHOPTS:" != *:nullglob:* ]] ; then
        shopt -s nullglob
        need_to_unset_nullglob=1
    fi
    oldest_file=
    for file in $glob_pattern ; do
        [[ -z $oldest_file || $file -ot $oldest_file ]] \
            && oldest_file=$file
    done
    # To avoid unexpected behaviour elsewhere, unset nullglob if it was
    # set by this function
    (( need_to_unset_nullglob )) && shopt -u nullglob
    # Use printf instead of echo in case the file name begins with '-'
    [[ -n $oldest_file ]] && printf '%s\n' "$oldest_file"
    return 0
}
#update system
sudo pacman -Syu --noconfirm
@@ -42,6 +79,7 @@
#Remove old packages
git rm -r x86_64/*
rm -r x86_64
mkdir x86_64
#dependencies
@@ -57,6 +95,11 @@
    git pull
    makepkg -si --noconfirm
    latest=$(newest_matching_file '*.pkg.tar.xz')
    while [ $NUM_BACK \< $(find . -name "*.pkg.tar.xz" | wc -l) ]
    do
        oldest=$(oldest_matching_file '*.pkg.tar.xz')
        rm $oldest
    done
    cd ..
    ln $d/$latest ../x86_64/$latest
    repo-add ../Chizi123.db.tar.xz ../x86_64/$latest
@@ -67,7 +110,7 @@
for d in `find . -maxdepth 1 -not -path '*/\.*' -type d`
do
    #Only do package directories
    if [ "$d" = "./x86_64" ] || [ "$d" = "." ] || [ "$d" = "dependencies" ]; then
    if [ "$d" = "./x86_64" ] || [ "$d" = "." ] || [ "$d" = "./dependencies" ]; then
        continue
    fi
    cd $d
@@ -75,6 +118,11 @@
    git pull
    makepkg -s --noconfirm
    latest=$(newest_matching_file '*.pkg.tar.xz')
    while [ $NUM_BACK \< $(find . -name "*.pkg.tar.xz" | wc -l) ]
    do
        oldest=$(oldest_matching_file '*.pkg.tar.xz')
        rm $oldest
    done
    cd ..
    ln $d/$latest x86_64/$latest
    repo-add ./Chizi123.db.tar.xz x86_64/$latest