Kevin Veen-Birkenbach 2023-06-20 20:33:03 +02:00
parent 46e8a481ca
commit 7857bb099b

View File

@ -1,49 +1,51 @@
#!/bin/bash #!/bin/bash
# @param $1 enable|disable # @param $1 enable|disable
# @param $2 extension name # @param $2 extension name
# @param $3 repository path [optional] # @param $3 repository path [optional]
action_type="$1" action_type="$1"
extension_name="$2" extension_name="$2"
extension_repository_path="$3" extension_repository_path="$3"
extension_folder="$HOME/.local/share/gnome-shell/extensions/$extension_repository_path/" extension_folder="$HOME/.local/share/gnome-shell/extensions/$extension_repository_path/"
echo "Install GNOME extension \"$extension_name\"..."
if [ "$action_type" == "enable" ];
then
if [ -z "$extension_repository_path" ];
then
if [ -d "$extension_folder" ];
then
if [ -d "$extension_folder"".git" ];
then
echo "Pulling changes from git..." &&
(cd "$extension_folder" && git pull) || exit 1
else
echo "No git repository. Extension will not be updated."
fi
else
echo "Install..." &&
git clone "$extension_repository_path" "$extension_folder" || exit 1
fi
if [ -f "$extension_folder""Makefile" ];
then
tmp_extension_folder="/tmp/$extension_repository_path" echo "=== GNOME Extension Installer ==="
mv "$extension_folder" "$tmp_extension_folder"
echo "Compilling extension.."
(cd "$tmp_extension_folder" && make install) || exit 1 "Compilation with failed."
echo "Cleaning up tmp-extension folder..."&& echo "Installing GNOME extension \"$extension_name\"..."
rm -fr "$tmp_extension_folder" || exit 1
else if [ "$action_type" == "enable" ]; then
echo "No Makefile found. Skipping compilation..." if [ -z "$extension_repository_path" ]; then
fi if [ -d "$extension_folder" ]; then
if [ -d "$extension_folder.git" ]; then
echo "Pulling changes from git..."
(cd "$extension_folder" && git pull) || exit 1
else
echo "No git repository. Extension will not be updated."
fi
else
echo "Cloning repository..."
git clone "$extension_repository_path" "$extension_folder" || exit 1
fi fi
echo "enable GNOME extension \"$extension_name\"..." &&
gnome-extensions enable "$extension_name" || exit 1 if [ -f "$extension_folder/Makefile" ]; then
tmp_extension_folder="/tmp/$extension_repository_path"
mv "$extension_folder" "$tmp_extension_folder"
echo "Compiling extension..."
(cd "$tmp_extension_folder" && make install) || exit 1 "Compilation failed."
echo "Cleaning up temporary extension folder..."
rm -fr "$tmp_extension_folder" || exit 1
else
echo "No Makefile found. Skipping compilation..."
fi
fi
echo "Enabling GNOME extension \"$extension_name\"..."
gnome-extensions enable "$extension_name" || exit 1
fi fi
if [ "$action_type" == "disable" ];
then if [ "$action_type" == "disable" ]; then
echo "disable GNOME extension \"$extension_name\"..." && echo "Disabling GNOME extension \"$extension_name\"..."
gnome-extensions disable "$extension_name" || exit 1 gnome-extensions disable "$extension_name" || exit 1
fi fi
echo "Installation complete."