Update package, setup, and uninstall
This commit is contained in:
parent
8b52feb37d
commit
67d29c57fd
|
|
@ -18,6 +18,7 @@ check_command() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_command "curl"
|
||||||
check_command "gnome-shell"
|
check_command "gnome-shell"
|
||||||
|
|
||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
|
|
|
||||||
|
|
@ -92,11 +92,13 @@ pushd $GNOME_DIR/src
|
||||||
GNOME_MANIFEST_LINE=$(find -L . -type f ! -name "*.compiled" -exec sha256sum {} \; | sort | sha256sum | sed 's/ .*//')
|
GNOME_MANIFEST_LINE=$(find -L . -type f ! -name "*.compiled" -exec sha256sum {} \; | sort | sha256sum | sed 's/ .*//')
|
||||||
popd
|
popd
|
||||||
|
|
||||||
FLATPAK_BUILD_ARTIFACT=ui/out/com.xronlinux.BreezyDesktop-$ARCH.flatpak
|
UI_BUILD_ARTIFACT=ui/out/breezyUI-$ARCH.tar.gz
|
||||||
if [ ! -e "$FLATPAK_BUILD_ARTIFACT" ] || [ "$1" == "--rebuild-flatpak" ] || [ "$1" == "--rebuild-all" ]; then
|
if [ ! -e "$UI_BUILD_ARTIFACT" ] || [ "$1" == "--rebuild-ui" ] || [ "$1" == "--rebuild-all" ]; then
|
||||||
ui/bin/package $ARCH
|
pushd ui
|
||||||
|
bin/package $ARCH
|
||||||
|
popd
|
||||||
fi
|
fi
|
||||||
cp $FLATPAK_BUILD_ARTIFACT $PACKAGE_DIR/com.xronlinux.BreezyDesktop.flatpak
|
tar -xf $UI_BUILD_ARTIFACT -C $PACKAGE_DIR
|
||||||
|
|
||||||
# create manifest file for verifying installed file checksums against the originally packaged versions
|
# create manifest file for verifying installed file checksums against the originally packaged versions
|
||||||
# include any file that doesn't get modified during setup (e.g. vkBasalt.json files)
|
# include any file that doesn't get modified during setup (e.g. vkBasalt.json files)
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,12 @@ rm -rf $DATA_DIR
|
||||||
[ "$for_install" -eq 0 ] && echo "Uninstalling the breezydesktop@xronlinux.com GNOME extension"
|
[ "$for_install" -eq 0 ] && echo "Uninstalling the breezydesktop@xronlinux.com GNOME extension"
|
||||||
gnome-extensions uninstall breezydesktop@xronlinux.com
|
gnome-extensions uninstall breezydesktop@xronlinux.com
|
||||||
|
|
||||||
[ "$for_install" -eq 0 ] && echo "Uninstalling the Breezy Desktop UI Flatpak"
|
[ "$for_install" -eq 0 ] && echo "Uninstalling the Breezy Desktop UI application"
|
||||||
flatpak uninstall --user --noninteractive --force-remove com.xronlinux.BreezyDesktop
|
rm -rf $XDG_DATA_HOME/breezydesktop
|
||||||
|
rm -f $XDG_DATA_HOME/applications/com.xronlinux.BreezyDesktop.desktop
|
||||||
|
rm -f $XDG_DATA_HOME/icons/hicolor/*/apps/com.xronlinux.BreezyDesktop.png
|
||||||
|
rm -f $XDG_DATA_HOME/locale/*/LC_MESSAGES/breezydesktop.mo
|
||||||
|
rm -f $XDG_BIN_HOME/breezydesktop
|
||||||
|
|
||||||
[ "$for_install" -eq 0 ] && echo "Uninstalling XRLinuxDriver"
|
[ "$for_install" -eq 0 ] && echo "Uninstalling XRLinuxDriver"
|
||||||
# if for-install
|
# if for-install
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,10 @@ check_command() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
check_command "flatpak"
|
|
||||||
check_command "gnome-extensions"
|
check_command "gnome-extensions"
|
||||||
|
check_command "glib-compile-schemas"
|
||||||
|
check_command "update-desktop-database"
|
||||||
|
check_command "gtk-update-icon-cache"
|
||||||
|
|
||||||
# This script gets packaged with the release and should do the bulk of the setup work. This allows this setup to be tied
|
# This script gets packaged with the release and should do the bulk of the setup work. This allows this setup to be tied
|
||||||
# to a specific release of the code, and guarantees it will never run along-side newer or older binaries.
|
# to a specific release of the code, and guarantees it will never run along-side newer or older binaries.
|
||||||
|
|
@ -22,12 +24,11 @@ if [ -z "$XDG_DATA_HOME" ]; then
|
||||||
fi
|
fi
|
||||||
XR_DRIVER_DATA_DIR="$XDG_DATA_HOME/xr_driver"
|
XR_DRIVER_DATA_DIR="$XDG_DATA_HOME/xr_driver"
|
||||||
GNOME_SHELL_DATA_DIR="$XDG_DATA_HOME/gnome-shell"
|
GNOME_SHELL_DATA_DIR="$XDG_DATA_HOME/gnome-shell"
|
||||||
DATA_DIR="$XDG_DATA_HOME/breezy_gnome"
|
BREEZY_GNOME_DATA_DIR="$XDG_DATA_HOME/breezy_gnome"
|
||||||
|
|
||||||
if [ -z "$XDG_BIN_HOME" ]; then
|
if [ -z "$XDG_BIN_HOME" ]; then
|
||||||
XDG_BIN_HOME="$USER_HOME/.local/bin"
|
XDG_BIN_HOME="$USER_HOME/.local/bin"
|
||||||
fi
|
fi
|
||||||
BIN_DIR="$XDG_BIN_HOME"
|
|
||||||
|
|
||||||
if [ -d "$XDG_BIN_HOME" ]; then
|
if [ -d "$XDG_BIN_HOME" ]; then
|
||||||
# check ownership and permissions before doing chown and chmod
|
# check ownership and permissions before doing chown and chmod
|
||||||
|
|
@ -59,31 +60,40 @@ UA_EVENT_VERSION="$1"
|
||||||
#INJECT_UA_CALL
|
#INJECT_UA_CALL
|
||||||
|
|
||||||
# escaping sed replace: https://stackoverflow.com/questions/407523/escape-a-string-for-a-sed-replace-pattern
|
# escaping sed replace: https://stackoverflow.com/questions/407523/escape-a-string-for-a-sed-replace-pattern
|
||||||
ESCAPED_BIN_DIR=$(printf '%s\n' "$BIN_DIR" | sed -e 's/[\/&]/\\&/g')
|
ESCAPED_XDG_BIN_HOME=$(printf '%s\n' "$XDG_BIN_HOME" | sed -e 's/[\/&]/\\&/g')
|
||||||
ESCAPED_DATA_DIR=$(printf '%s\n' "$DATA_DIR" | sed -e 's/[\/&]/\\&/g')
|
ESCAPED_BREEZY_GNOME_DATA_DIR=$(printf '%s\n' "$BREEZY_GNOME_DATA_DIR" | sed -e 's/[\/&]/\\&/g')
|
||||||
ESCAPED_XR_DRIVER_DATA_DIR=$(printf '%s\n' "$XR_DRIVER_DATA_DIR" | sed -e 's/[\/&]/\\&/g')
|
ESCAPED_XR_DRIVER_DATA_DIR=$(printf '%s\n' "$XR_DRIVER_DATA_DIR" | sed -e 's/[\/&]/\\&/g')
|
||||||
ESCAPED_GNOME_SHELL_DATA_DIR=$(printf '%s\n' "$GNOME_SHELL_DATA_DIR" | sed -e 's/[\/&]/\\&/g')
|
ESCAPED_GNOME_SHELL_DATA_DIR=$(printf '%s\n' "$GNOME_SHELL_DATA_DIR" | sed -e 's/[\/&]/\\&/g')
|
||||||
|
|
||||||
echo "Copying the breezy_gnome scripts to ${XDG_BIN_HOME}"
|
echo "Copying the breezy_gnome scripts to ${XDG_BIN_HOME}"
|
||||||
mkdir -p $XDG_BIN_HOME
|
mkdir -p $XDG_BIN_HOME
|
||||||
cp bin/breezy_gnome_uninstall $XDG_BIN_HOME
|
cp bin/breezy_gnome_uninstall $XDG_BIN_HOME
|
||||||
sed -i -e "s/{bin_dir}/$ESCAPED_BIN_DIR/g" \
|
sed -i -e "s/{bin_dir}/$ESCAPED_XDG_BIN_HOME/g" \
|
||||||
-e "s/{data_dir}/$ESCAPED_DATA_DIR/g" \
|
-e "s/{data_dir}/$ESCAPED_BREEZY_GNOME_DATA_DIR/g" \
|
||||||
-e "s/{xr_driver_data_dir}/$ESCAPED_XR_DRIVER_DATA_DIR/g" \
|
-e "s/{xr_driver_data_dir}/$ESCAPED_XR_DRIVER_DATA_DIR/g" \
|
||||||
-e "s/{gnome_shell_data_dir}/$ESCAPED_GNOME_SHELL_DATA_DIR/g" \
|
-e "s/{gnome_shell_data_dir}/$ESCAPED_GNOME_SHELL_DATA_DIR/g" \
|
||||||
bin/breezy_gnome_verify
|
bin/breezy_gnome_verify
|
||||||
cp bin/breezy_gnome_verify $XDG_BIN_HOME
|
cp bin/breezy_gnome_verify $XDG_BIN_HOME
|
||||||
|
|
||||||
echo "Copying the manifest file to ${DATA_DIR}"
|
echo "Copying the manifest file to ${BREEZY_GNOME_DATA_DIR}"
|
||||||
mkdir -p $DATA_DIR
|
mkdir -p $BREEZY_GNOME_DATA_DIR
|
||||||
cp manifest $DATA_DIR
|
cp manifest $BREEZY_GNOME_DATA_DIR
|
||||||
|
|
||||||
echo "Installing the breezydesktop@xronlinux.com GNOME extension"
|
echo "Installing the breezydesktop@xronlinux.com GNOME extension"
|
||||||
gnome-extensions install --force breezydesktop@xronlinux.com.shell-extension.zip
|
gnome-extensions install --force breezydesktop@xronlinux.com.shell-extension.zip
|
||||||
|
|
||||||
echo "Installing the Breezy Desktop UI Flatpak (this may take a couple minutes the first time)"
|
echo "Installing the Breezy Desktop UI application"
|
||||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
cp -r breezy_ui/data/* $XDG_DATA_HOME
|
||||||
flatpak install --user --noninteractive --reinstall com.xronlinux.BreezyDesktop.flatpak
|
cp -r breezy_ui/bin/* $XDG_BIN_HOME
|
||||||
|
|
||||||
|
# update copied files to use the local XDG paths
|
||||||
|
ESCAPED_XDG_DATA_HOME=$(printf '%s\n' "$XDG_DATA_HOME" | sed -e 's/[\/&]/\\&/g')
|
||||||
|
sed -i -e "s/\/usr\/local\/share/$ESCAPED_XDG_DATA_HOME/g" $XDG_BIN_HOME/breezydesktop
|
||||||
|
sed -i "/Exec/c\Exec=$XDG_BIN_HOME/breezydesktop" $XDG_DATA_HOME/applications/com.xronlinux.BreezyDesktop.desktop
|
||||||
|
|
||||||
|
glib-compile-schemas $XDG_DATA_HOME/glib-2.0/schemas
|
||||||
|
update-desktop-database $XDG_DATA_HOME/applications
|
||||||
|
gtk-update-icon-cache
|
||||||
|
|
||||||
# set up the XR driver using the local binary
|
# set up the XR driver using the local binary
|
||||||
echo "Installing xrDriver"
|
echo "Installing xrDriver"
|
||||||
|
|
|
||||||
|
|
@ -17,24 +17,41 @@ pushd $UI_BUILD_PATH
|
||||||
meson compile
|
meson compile
|
||||||
popd
|
popd
|
||||||
|
|
||||||
PACKAGE_SRC_DIR=$PACKAGE_DIR/src
|
# mimick the XDG directory structure in our archive file so setup can just copy the directories and not individual files
|
||||||
|
PACKAGE_DATA_DIR=$PACKAGE_DIR/data
|
||||||
PACKAGE_BIN_DIR=$PACKAGE_DIR/bin
|
PACKAGE_BIN_DIR=$PACKAGE_DIR/bin
|
||||||
PACKAGE_ICONS_DIR=$PACKAGE_DIR/icons
|
|
||||||
mkdir -p $PACKAGE_SRC_DIR
|
# these are all subdirectories of XDG_DATA_HOME
|
||||||
|
PACKAGE_BREEZY_DIR=$PACKAGE_DATA_DIR/breezydesktop
|
||||||
|
PACKAGE_BREEZY_SRC_DIR=$PACKAGE_BREEZY_DIR/breezydesktop
|
||||||
|
PACKAGE_ICONS_DIR=$PACKAGE_DATA_DIR/icons/hicolor
|
||||||
|
PACKAGE_LOCALE_DIR=$PACKAGE_DATA_DIR/locale
|
||||||
|
PACKAGE_APPS_DIR=$PACKAGE_DATA_DIR/applications
|
||||||
|
PACKAGE_SCHEMAS_DIR=$PACKAGE_DATA_DIR/glib-2.0/schemas
|
||||||
|
|
||||||
mkdir -p $PACKAGE_BIN_DIR
|
mkdir -p $PACKAGE_BIN_DIR
|
||||||
|
mkdir -p $PACKAGE_BREEZY_SRC_DIR
|
||||||
mkdir -p $PACKAGE_ICONS_DIR
|
mkdir -p $PACKAGE_ICONS_DIR
|
||||||
|
mkdir -p $PACKAGE_LOCALE_DIR
|
||||||
|
mkdir -p $PACKAGE_APPS_DIR
|
||||||
|
mkdir -p $PACKAGE_SCHEMAS_DIR
|
||||||
|
|
||||||
cp src/*.py $PACKAGE_SRC_DIR
|
cp src/*.py $PACKAGE_BREEZY_SRC_DIR
|
||||||
cp -r po $BUILD_PATH
|
cp -L modules/PyXRLinuxDriverIPC/xrdriveripc.py $PACKAGE_BREEZY_SRC_DIR
|
||||||
cp modules/PyXRLinuxDriverIPC/xrdriveripc.py $PACKAGE_SRC_DIR
|
cp $UI_BUILD_PATH/src/breezydesktop.gresource $PACKAGE_BREEZY_DIR
|
||||||
|
cp -r po/mo/* $PACKAGE_LOCALE_DIR
|
||||||
|
cp data/com.xronlinux.BreezyDesktop.gschema.xml $PACKAGE_SCHEMAS_DIR
|
||||||
cp $UI_BUILD_PATH/src/breezydesktop $PACKAGE_BIN_DIR
|
cp $UI_BUILD_PATH/src/breezydesktop $PACKAGE_BIN_DIR
|
||||||
cp $UI_BUILD_PATH/src/breezydesktop.gresource $PACKAGE_DIR
|
cp $UI_BUILD_PATH/data/com.xronlinux.BreezyDesktop.desktop $PACKAGE_APPS_DIR
|
||||||
cp $UI_BUILD_PATH/data/com.xronlinux.BreezyDesktop.desktop $PACKAGE_DIR
|
|
||||||
|
|
||||||
rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 64 -h 64 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_64.png
|
mkdir -p $PACKAGE_ICONS_DIR/64x64/apps
|
||||||
rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 128 -h 128 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_128.png
|
mkdir -p $PACKAGE_ICONS_DIR/128x128/apps
|
||||||
rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 256 -h 256 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_256.png
|
mkdir -p $PACKAGE_ICONS_DIR/256x256/apps
|
||||||
rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 1024 -h 1024 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_1024.png
|
mkdir -p $PACKAGE_ICONS_DIR/1024x1024/apps
|
||||||
|
rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 64 -h 64 -o $PACKAGE_ICONS_DIR/64x64/apps/com.xronlinux.BreezyDesktop.png
|
||||||
|
rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 128 -h 128 -o $PACKAGE_ICONS_DIR/128x128/apps/com.xronlinux.BreezyDesktop.png
|
||||||
|
rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 256 -h 256 -o $PACKAGE_ICONS_DIR/256x256/apps/com.xronlinux.BreezyDesktop.png
|
||||||
|
rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 1024 -h 1024 -o $PACKAGE_ICONS_DIR/1024x1024/apps/com.xronlinux.BreezyDesktop.png
|
||||||
|
|
||||||
pushd $BUILD_PATH
|
pushd $BUILD_PATH
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ for file in po/*.po; do
|
||||||
|
|
||||||
msgmerge --update "po/$lang.po" po/breezydesktop.pot
|
msgmerge --update "po/$lang.po" po/breezydesktop.pot
|
||||||
|
|
||||||
outdir="po/$lang/LC_MESSAGES"
|
outdir="po/mo/$lang/LC_MESSAGES"
|
||||||
mkdir -p "$outdir"
|
mkdir -p "$outdir"
|
||||||
msgfmt -o "$outdir/breezydesktop.mo" "$file"
|
msgfmt -o "$outdir/breezydesktop.mo" "$file"
|
||||||
done
|
done
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=Breezy Desktop
|
Name=Breezy Desktop
|
||||||
Exec=env LOCALE_DIR=/usr/local/share/breezydesktop/breezydesktop/po breezydesktop
|
Exec=breezydesktop
|
||||||
Icon=com.xronlinux.BreezyDesktop
|
Icon=com.xronlinux.BreezyDesktop
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-10-01 13:24-0700\n"
|
"POT-Creation-Date: 2024-10-02 09:15-0700\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
|
||||||
|
|
@ -32,15 +32,16 @@ gi.require_version('Adw', '1')
|
||||||
gi.require_version('Gio', '2.0')
|
gi.require_version('Gio', '2.0')
|
||||||
gi.require_version('GLib', '2.0')
|
gi.require_version('GLib', '2.0')
|
||||||
|
|
||||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
user_home = os.path.expanduser('~')
|
||||||
po_dir = os.path.join(script_dir, 'po')
|
xdg_data_home = os.environ.get('XDG_DATA_HOME') or os.path.join(user_home, '.local', 'share')
|
||||||
locale_dir = os.environ.get('LOCALE_DIR', '/app/share/locale')
|
locale_dir = os.environ.get('LOCALE_DIR', os.path.join(xdg_data_home, 'locale'))
|
||||||
|
|
||||||
locale.setlocale(locale.LC_ALL, locale.getdefaultlocale())
|
locale.setlocale(locale.LC_ALL, locale.getdefaultlocale())
|
||||||
locale.bindtextdomain('breezydesktop', locale_dir)
|
locale.bindtextdomain('breezydesktop', locale_dir)
|
||||||
gettext.bindtextdomain('breezydesktop', locale_dir)
|
gettext.bindtextdomain('breezydesktop', locale_dir)
|
||||||
gettext.textdomain('breezydesktop')
|
gettext.textdomain('breezydesktop')
|
||||||
|
|
||||||
|
|
||||||
from gi.repository import Adw, Gtk, Gio
|
from gi.repository import Adw, Gtk, Gio
|
||||||
from .licensedialog import LicenseDialog
|
from .licensedialog import LicenseDialog
|
||||||
from .statemanager import StateManager
|
from .statemanager import StateManager
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue