gstreamer/ci/docker/indent/prepare.sh

60 lines
1.9 KiB
Bash
Executable file

#! /bin/bash
set -e
set -x
# Install dotnet-format
apt update -yqq
apt install -y gnupg apt-transport-https
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
# FIXME: this is bullseye, but image is actually bookworm (testing at the time)
curl -O https://packages.microsoft.com/config/debian/11/prod.list
mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
chown root:root /etc/apt/sources.list.d/microsoft-prod.list
apt update -yqq
apt install -y dotnet-sdk-7.0
dotnet tool install --global dotnet-format
ln -s ~/.dotnet/tools/dotnet-format /usr/local/bin/dotnet-format
# Build and install gst-indent-1.0
echo "deb-src http://deb.debian.org/debian/ bookworm main" >> /etc/apt/sources.list
apt update
apt-get install --assume-yes devscripts build-essential dpkg-dev wget meson ninja-build
apt-get build-dep --assume-yes indent
git clone https://gitlab.freedesktop.org/gstreamer/gst-indent.git
cd gst-indent
meson setup --prefix=/usr _build
meson install -C _build
# Try it
wget -O gstbayer2rgb.c "https://gitlab.freedesktop.org/gstreamer/gstreamer/-/raw/main/subprojects/gst-plugins-bad/gst/bayer/gstbayer2rgb.c?inline=false"
for i in 1 2; do
indent \
--braces-on-if-line \
--case-brace-indentation0 \
--case-indentation2 \
--braces-after-struct-decl-line \
--line-length80 \
--no-tabs \
--cuddle-else \
--dont-line-up-parentheses \
--continuation-indentation4 \
--honour-newlines \
--tab-size8 \
--indent-level2 \
--leave-preprocessor-space \
gstbayer2rgb.c
done;
# clean up
cd ..
rm -rf gst-indent
apt-get remove --assume-yes devscripts build-essential dpkg-dev wget meson ninja-build
apt-get remove --assume-yes libtext-unidecode-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxml-libxml-perl texinfo
apt-get autoremove --assume-yes