11#! /bin/bash
22# Run:
33# chmod +x uninstallpackagelibgpiod.sh
4- # ./uninstallpackagelibgpiod.sh /usr/share/libgpiod
4+ # ./uninstallpackagelibgpiod.sh
5+ # ==============================
56
6- set -e # Exit immediately if a comman returns a non-zero status
7+ # Remove libgpiod for for ARM64, ARM32, x86_64, RISC-V
8+ # C library and tools for interacting with the linux GPIO character device
9+ # Site: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
10+ # Script version: 3.0
11+ # arguments:
12+ # -p|--path: library installation folder (default: /usr/share/libgpiod).
13+ # =================================================================
14+ # Run: chmod +x remove-libgpiod.sh
15+ # sudo ./remove-libgpiod.sh -p /usr/share/libgpiod
16+ # or
17+ # Run: chmod +x remove-libgpiod.sh
18+ # sudo ./remove-libgpiod.sh
19+ # =================================================================
20+ # DevDotNet.ORG <anton@devdotnet.org> MIT License
721
8- echo " Run: uninstallpackagelibgpiod.sh"
9- #
10- INSTALLPATH=" $1 "
11- #
22+ set -e
1223
13- if [ -z $INSTALLPATH ] ; then
14- INSTALLPATH=/usr/share/libgpiod
15- fi
24+ # definition of variables
25+ declare ARCH_OS= $( uname -m ) # aarch64, armv7l, x86_64 or riscv64
26+ declare ID_OS=( " $( cat /etc/ * release | grep ' ^ID= ' | sed ' s/.*=\s*// ' ) " ) # ubuntu, debian, alpine
1627
17- export DEBIAN_FRONTEND=" noninteractive"
28+ # requirements check
29+ if [ $ARCH_OS != " aarch64" ] && [ $ARCH_OS != " armv7l" ] \
30+ && [ $ARCH_OS != " x86_64" ]&& [ $ARCH_OS != " riscv64" ]; then
31+ echo " ERROR. Current OS architecture ${ARCH_OS} is not supported."
32+ exit 1;
33+ fi
1834
19- # Package removal
20- sudo apt-get remove -y libgpiod-dev & > /dev/null || echo " Package libgpiod-dev has been removed"
21- sudo apt-get remove -y gpiod & > /dev/null || echo " Package gpiod has been removed"
35+ if [ $ID_OS != " ubuntu" ] && [ $ID_OS != " debian" ] && [ $ID_OS != " alpine" ]; then
36+ echo " ERROR. Current OS ${ID_OS} not supported."
37+ exit 1;
38+ fi
2239
23- # ========================================
24- # https://raw.githubusercontent.com/devdotnetorg/docker-libgpiod/master/remove-libgpiod.sh
40+ # reading arguments from CLI
41+ wPOSITIONAL_ARGS=()
42+ while [[ $# -gt 0 ]]; do
43+ case $1 in
44+ -p|--path)
45+ INSTALL_PATH=" $2 "
46+ shift # past argument
47+ shift # past value
48+ ;;
49+ -* |--* )
50+ echo " Unknown option $1 "
51+ exit 1
52+ ;;
53+ * )
54+ POSITIONAL_ARGS+=(" $1 " ) # save positional arg
55+ shift # past argument
56+ ;;
57+ esac
58+ done
2559
26- #
27- ARMBIT=$( uname -m) # aarch64, armv7l, or x86_64
28- #
60+ # defining default values
61+ if [ -z $INSTALL_PATH ]; then
62+ INSTALL_PATH=" /usr/share/libgpiod"
63+ fi
2964
3065echo " ==============================================="
3166echo " Removing Libgpiod library"
32- echo " Library installation path:" $INSTALLPATH
67+ echo " Library installation path:" $INSTALL_PATH
3368echo " ==============================================="
3469echo " "
35- echo " =====================Remove====================="
36- #
37- rm -rfv ~ /libgpiod-* & > /dev/null || echo " libgpiod-* has been removed"
70+ echo " ===================== Remove ====================="
71+ echo " Please wait for the end ..."
72+
73+ # Package removal
74+ if [ $ID_OS != " alpine" ]; then
75+ # ubuntu, debian
76+ export DEBIAN_FRONTEND=" noninteractive"
77+ sudo apt-get remove -y libgpiod-doc & > /dev/null || echo " Package libgpiod-doc has been removed"
78+ sudo apt-get remove -y python3-libgpiod & > /dev/null || echo " Package python3-libgpiod has been removed"
79+ sudo apt-get remove -y gpiod & > /dev/null || echo " Package gpiod has been removed"
80+ sudo apt-get remove -y libgpiod-dev & > /dev/null || echo " Package libgpiod-dev has been removed"
81+ # Clear
82+ sudo apt-get clean autoclean -y
83+ sudo apt-get autoremove -y
84+ else
85+ # alpine
86+ apk delete libgpiod-doc & > /dev/null || echo " Package libgpiod-doc has been removed"
87+ apk delete py3-libgpiod & > /dev/null || echo " Package py3-libgpiod has been removed"
88+ apk delete libgpiod & > /dev/null || echo " Package libgpiod has been removed"
89+ apk delete libgpiod-dev & > /dev/null || echo " Package libgpiod-dev has been removed"
90+ fi
3891
39- if [ -d $INSTALLPATH ]; then
40- sudo rm -rfv $INSTALLPATH
92+ # INSTALL_PATH
93+ if [ -d $INSTALL_PATH ]; then
94+ sudo rm -rfv $INSTALL_PATH
95+ echo " ${INSTALL_PATH} has been removed"
4196fi
4297
98+ # Clear
99+ sudo rm -rf /var/lib/{cache,log}/ /tmp/* /var/tmp/* $HOME /.cache
100+
101+ # Folders
43102LIB_FOLDER=" "
44- case $ARMBIT in
103+ case $ARCH_OS in
45104
46105 aarch64)
47106 LIB_FOLDER=" aarch64-linux-gnu"
@@ -55,27 +114,38 @@ case $ARMBIT in
55114 LIB_FOLDER=" x86_64-linux-gnu"
56115 ;;
57116
117+ riscv64)
118+ LIB_FOLDER=" riscv64-linux-gnu"
119+ ;;
120+
58121 * )
59122 LIB_FOLDER=" "
60123 ;;
61124esac
125+
62126# Removing ln
63- echo " ============Removing symbolic links============"
64- # bin
65- sudo rm /usr/bin/gpiodetect & > /dev/null || echo " gpiodetect has been removed"
66- sudo rm /usr/bin/gpiofind & > /dev/null || echo " gpiofind has been removed"
67- sudo rm /usr/bin/gpioget & > /dev/null || echo " gpioget has been removed"
68- sudo rm /usr/bin/gpioinfo & > /dev/null || echo " gpioinfo has been removed"
69- sudo rm /usr/bin/gpiomon & > /dev/null || echo " gpiomon has been removed"
70- sudo rm /usr/bin/gpioset & > /dev/null || echo " gpioset has been removed"
71- # /usr/lib
72- sudo rm /usr/lib/$LIB_FOLDER /libgpiod.a & > /dev/null || echo " libgpiod.a has been removed"
73- sudo rm /usr/lib/$LIB_FOLDER /libgpiod.la & > /dev/null || echo " libgpiod.la has been removed"
74- sudo rm /usr/lib/$LIB_FOLDER /libgpiod.so & > /dev/null || echo " libgpiod.so has been removed"
75- sudo rm /usr/lib/$LIB_FOLDER /libgpiod.so.2 & > /dev/null || echo " libgpiod.so.2 has been removed"
76- sudo rm /usr/lib/$LIB_FOLDER /libgpiod.so.2.2.2 & > /dev/null || echo " libgpiod.so.2.2.2 has been removed"
77- #
78- echo " ==============================================="
127+ echo " ============ Deleting binary files ============"
128+ # /usr/bin
129+ # ubuntu, debian, alpine
130+ sudo rm /usr/bin/gpio* & > /dev/null || echo " bin/gpio* has been removed"
131+ # /usr/include
132+ # ubuntu, debian, alpine
133+ sudo rm -r /usr/include/gpiod* & > /dev/null || echo " include/gpiod* has been removed"
134+ # /usr/lib
135+ # ubuntu, debian
136+ sudo rm /usr/lib/$LIB_FOLDER /libgpiod* & > /dev/null || echo " libgpiod* has been removed"
137+ sudo rm /usr/lib/$LIB_FOLDER /pkgconfig/libgpiod* & > /dev/null || echo " pkgconfig/libgpiod* has been removed"
138+ # alpine
139+ sudo rm /usr/lib/libgpiod* & > /dev/null || echo " libgpiod* has been removed"
140+ sudo rm /usr/lib/pkgconfig/libgpiod* & > /dev/null || echo " pkgconfig/libgpiod* has been removed"
141+ # /usr/share/
142+ # ubuntu, debian, alpine
143+ sudo rm /var/lib/dpkg/info/libgpiod* & > /dev/null || echo " dpkg/info libgpiod* has been removed"
144+ sudo rm -r /usr/share/doc/libgpiod* & > /dev/null || echo " doc/libgpiod* has been removed"
145+ # /usr/share/man
146+ # ubuntu, debian, alpine
147+ sudo rm -r /usr/share/man/man1/gpio* & > /dev/null || echo " share/man/man1/gpio* has been removed"
79148
80- # ========================================
149+ echo " =============================================== "
81150echo " Successfully"
151+ exit 0;
0 commit comments