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

Chizi123
2019-07-19 12a276dee40a7fa1a912654e8da197c3e4819749
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/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
    local -r glob_pattern=${1-}
 
    if (( $# != 1 )) ; then
        echo 'usage: newest_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
 
    newest_file=
    for file in $glob_pattern ; do
        [[ -z $newest_file || $file -nt $newest_file ]] \
            && newest_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 $newest_file ]] && printf '%s\n' "$newest_file"
 
    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
 
#go to build directory
cd $(dirname "$(realpath $0)")
 
#Remove old packages
git rm -r x86_64/*
rm -r x86_64
mkdir x86_64
 
#dependencies
cd dependencies
for d in `find . -maxdepth 1 -not -path '*/\.*' -type d`
do
    #Only do package directories
    if [ "$d" = "./x86_64" ] || [ "$d" = "." ]; then
        continue
    fi
    cd $d
    #update package to latest from AUR
    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
done
cd ..
 
#main packages
for d in `find . -maxdepth 1 -not -path '*/\.*' -type d`
do
    #Only do package directories
    if [ "$d" = "./x86_64" ] || [ "$d" = "." ] || [ "$d" = "./dependencies" ]; then
        continue
    fi
    cd $d
    #update package to latest from AUR
    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
done
 
ln Chizi123.db.tar.xz x86_64/Chizi123.db
ln Chizi123.files.tar.xz x86_64/Chizi123.files
git add x86_64
git commit -m "'$(date +%d/%m/%y-%H:%M)'"
git push