Page MenuHomePhabricator

generate apt pinning file for keystone

Authored By
aborrero
Jun 12 2018, 11:12 AM
Size
1 KB
Referenced Files
None
Subscribers
None

generate apt pinning file for keystone

#!/bin/bash
PKGS=""
PINS=""
get_depends()
{
apt-cache show $1/jessie-backports 2>/dev/null | grep -e Depends -e PreDepends \
| awk -F'Depends:' '{print $2}' | tr ',' '\n' | grep \(.*\) | awk -F' ' '{print $1}'
}
exists_in_bpo()
{
if apt-cache show $1/jessie-backports 2>/dev/null >/dev/null; then
return 0
else
return 1
fi
}
get_version_in_bpo()
{
apt-cache show $1/jessie-backports | grep ^Version: | awk -F' ' '{print $2}'
}
eval_check_loop()
{
if grep ^${1}$ <<< "$PKGS" >/dev/null ; then
return 1
fi
PKGS="$(echo "$PKGS" ; echo $1)"
}
pinn_check_loop()
{
if grep ^${1}$ <<< "$PINS" >/dev/null ; then
return 1
fi
PINS="$(echo "$PINS" ; echo $1)"
}
generate_pinning()
{
name=$1
if ! pinn_check_loop $name ; then
return
fi
version=$(get_version_in_bpo $name)
echo -e "Package: $name\nPin: version $version\nPin-Priority: 1002\n"
}
eval()
{
package=$1
if ! eval_check_loop $package ; then
return
fi
for i in $(get_depends $package)
do
if ! exists_in_bpo $i ; then
continue
fi
generate_pinning $i
eval $i
done
}
generate_pinning keystone
eval keystone

File Metadata

Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6018424
Default Alt Text
generate apt pinning file for keystone (1 KB)

Event Timeline