source: devtools/metadata-generator/metadata-generator.sh

Last change on this file was 7045, checked in by Juanma, 2 years ago

Update utils

  • Property svn:executable set to *
File size: 2.4 KB
Line 
1#!/bin/bash
2
3CHROOT_DIR="/home/lliurex/workspace/appstream-generator/debootstrap"
4ERROR=0
5function ayuda
6{
7        echo "Usage: "$(basename $0)" -r repo -s suite [-c chroot_dir] "
8        printf "Args:\n"
9        printf "\t -h: Shows this message\n"
10        printf "\t -s suite: Suite to process (xenial, trusty..)\n"
11        printf "\t -r repo: Path to repo basedir\n"
12        printf "\t -c chroot: Dir with the chroot (defaults to $CHROOT_DIR)\n"
13        exit 1
14}
15
16function get_err
17{
18        case $ERROR in
19                10)
20                        err_msg="Failed to copy /proc/mounts as chroot's mtab"
21                        ;;
22                20)
23                        err_msg="Failed to mount /proc"
24                        ;;
25                30)
26                        err_msg="Failed to mount /sys"
27                        ;;
28                40)
29                        err_msg="Failed to bind /dev/pts"
30                        ;;
31                50)
32                        err_msg="Failed to bind /dev"
33                        ;;
34                60)
35                        err_msg="Failed to bind $MIRROR"
36                        ;;
37                70)
38                        err_msg="Can't chroot to $CHROOT_DIR"
39                        ;;
40        esac
41        echo $err_msg
42        exit $ERROR
43}
44
45function setup_env
46{
47        echo "Setting up chroot environment in $CHROOT_DIR"
48
49        cp /proc/mounts /home/lliurex/workspace/appstream-generator/debootstrap/etc/mtab 2>/dev/null|| (ERROR=10;get_err)
50        mount -t proc /proc /home/lliurex/workspace/appstream-generator/debootstrap/proc/ 2>/dev/null|| (ERROR=20;get_err)
51        mount -t sysfs /sys/ /home/lliurex/workspace/appstream-generator/debootstrap/sys/ 2>/dev/null|| (ERROR=30;get_err)
52        mount -o bind /dev/pts /home/lliurex/workspace/appstream-generator/debootstrap/dev/pts 2>/dev/null|| (ERROR=40;get_err)
53        mount -o bind /dev /home/lliurex/workspace/appstream-generator/debootstrap/dev/ 2>/dev/null|| (ERROR=50;get_err)
54        mount --bind /srv/mirror/${MIRROR} debootstrap/srv || (ERROR=60;get_err)
55}
56
57function process_suite
58{
59        echo "Processing suite $SUITE using repo $REPO"
60        cat << EOF | chroot ${CHROOT_DIR}
61        cd /srv
62        appstream-generator cleanup
63        appstream-generator remove-found xenial
64        appstream-generator process xenial --force #Con esto generamos los datos
65EOF
66
67}
68
69if [ $UID -ne 0 ]
70then
71        echo "This script must be run as root"
72        exit 1
73fi
74
75args=0
76while getopts ":hm:s:c:" optname
77        do
78        case "$optname" in
79                "h")
80                        ayuda
81                        ;;
82                "r")
83                        REPO=$OPTARG
84                        let args=$args+1
85                        ;;
86                "s")
87                        SUITE=$OPTARG
88                        let args=$args+1
89                        ;;
90                "c")
91                        CHROOT_DIR=$OPTARGS
92                        ;;
93                "?")
94                        echo "Unknown option $OPTARG"
95                        ayuda
96                        ;;
97                ":")
98                        echo "No argument value for option $OPTARG"
99                        ayuda
100                        ;;
101                *)
102                        # Should not occur
103                          echo "Unknown error while processing options"
104                          exit 1
105                ;;
106        esac
107done
108
109if [ $args -ne 2 ]
110then
111        ayuda
112fi
113
114setup_env
115process_suite
116
117exit 0
Note: See TracBrowser for help on using the repository browser.