summarylogtreecommitdiffstats
path: root/slimjet.install
diff options
context:
space:
mode:
authorraininja2015-08-22 18:33:59 -0400
committerraininja2015-08-22 18:33:59 -0400
commitdfc51055f98e69e558e08cd51e29816183830d96 (patch)
treeb91d5446064e0b23b8e78921da07be2f6014679a /slimjet.install
downloadaur-dfc51055f98e69e558e08cd51e29816183830d96.tar.gz
initial commit
Diffstat (limited to 'slimjet.install')
-rw-r--r--slimjet.install225
1 files changed, 225 insertions, 0 deletions
diff --git a/slimjet.install b/slimjet.install
new file mode 100644
index 000000000000..6dda0219933b
--- /dev/null
+++ b/slimjet.install
@@ -0,0 +1,225 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+
+ ARCH=$(uname -m)
+
+
+ # Add icons to the system icons
+ XDG_ICON_RESOURCE="`which xdg-icon-resource 2> /dev/null || true`"
+ if [ ! -x "$XDG_ICON_RESOURCE" ]; then
+ echo "Error: Could not find xdg-icon-resource" >&2
+ exit 1
+ fi
+ for icon in "/opt/slimjet/product_logo_"*.png; do
+ size="${icon##*/product_logo_}"
+ "$XDG_ICON_RESOURCE" install --size "${size%.png}" "$icon" "flashpeak-slimjet"
+ done
+
+ UPDATE_MENUS="`which update-mime-database usr/share/mime &> /dev/null 2> /dev/null || true`"
+ if [ -x "$UPDATE_MENUS" ]; then
+ update-mime-database usr/share/mime &> /dev/null
+ fi
+
+ # Update cache of .desktop file MIME types. Non-fatal since it's just a cache.
+ update-desktop-database > /dev/null 2>&1 || true
+
+ # Updates defaults.list file if present.
+ update_defaults_list() {
+ # $1: name of the .desktop file
+
+ #local DEFAULTS_FILE="/usr/share/applications/defaults.list"
+ DEFAULTS_FILE="/usr/share/applications/defaults.list"
+
+ if [ ! -f "${DEFAULTS_FILE}" ]; then
+ return
+ fi
+
+ # Split key-value pair out of MimeType= line from the .desktop file,
+ # then split semicolon-separated list of mime types (they should not contain
+ # spaces).
+ mime_types="$(grep MimeType= /usr/share/applications/${1} |
+ cut -d '=' -f 2- |
+ tr ';' ' ')"
+ for mime_type in ${mime_types}; do
+ if egrep -q "^${mime_type}=" "${DEFAULTS_FILE}"; then
+ if ! egrep -q "^${mime_type}=.*${1}" "${DEFAULTS_FILE}"; then
+ default_apps="$(grep ${mime_type}= "${DEFAULTS_FILE}" |
+ cut -d '=' -f 2-)"
+ egrep -v "^${mime_type}=" "${DEFAULTS_FILE}" > "${DEFAULTS_FILE}.new"
+ echo "${mime_type}=${default_apps};${1}" >> "${DEFAULTS_FILE}.new"
+ mv "${DEFAULTS_FILE}.new" "${DEFAULTS_FILE}"
+ fi
+ else
+ # If there's no mention of the mime type in the file, add it.
+ echo "${mime_type}=${1};" >> "${DEFAULTS_FILE}"
+ fi
+ done
+ }
+
+ update_defaults_list "slimjet.desktop"
+
+ # This function uses sed to insert the contents of one file into another file,
+ # after the first line matching a given regular expression. If there is no
+ # matching line, then the file is unchanged.
+ insert_after_first_match() {
+ # $1: file to update
+ # $2: regular expression
+ # $3: file to insert
+ sed -i -e "1,/$2/ {
+ /$2/ r $3
+ }" "$1"
+ }
+
+ # If /usr/share/gnome-control-center/gnome-default-applications.xml exists, it
+ # may need to be updated to add ourselves to the default applications list. If
+ # we find the file and it does not seem to contain our patch already (the patch
+ # is safe to leave even after uninstall), update it.
+ GNOME_DFL_APPS=/usr/share/gnome-control-center/gnome-default-applications.xml
+ if [ -f "$GNOME_DFL_APPS" ]; then
+ # Conditionally insert the contents of the file "default-app-block" after the
+ # first "<web-browsers>" line we find in gnome-default-applications.xml
+ fgrep -q "FlashPeak Slimjet" "$GNOME_DFL_APPS" || insert_after_first_match "$GNOME_DFL_APPS" "^[ ]*<web-browsers>[ ]*$" "/opt/slimjet/default-app-block"
+ fi
+
+
+ get_lib_dir() {
+ if [ "$ARCH" = "i686" ]; then
+ LIBDIR=/usr/lib
+ elif [ "$ARCH" = "x86_64" ]; then
+ LIBDIR=/usr/lib64
+ else
+ echo Unknown CPU Architecture: "$ARCH"
+ exit 1
+ fi
+ }
+
+ NSS_FILES="libnspr4.so.0d libplds4.so.0d libplc4.so.0d libssl3.so.1d libnss3.so.1d libsmime3.so.1d libnssutil3.so.1d"
+
+ add_nss_symlinks() {
+ get_lib_dir
+ for f in $NSS_FILES
+ do
+ target=$(echo $f | sed 's/.[01]d$//')
+ if [ -f "/$LIBDIR/$target" ]; then
+ ln -snf "/$LIBDIR/$target" "/opt/slimjet/$f"
+ elif [ -f "/usr/$LIBDIR/$target" ]; then
+ ln -snf "/usr/$LIBDIR/$target" "/opt/slimjet/$f"
+ else
+ echo $f not found in "/$LIBDIR/$target" or "/usr/$LIBDIR/$target".
+ exit 1
+ fi
+ done
+ }
+
+ remove_nss_symlinks() {
+ for f in $NSS_FILES
+ do
+ rm -rf "/opt/slimjet/$f"
+ done
+ }
+
+ # Fedora 18 now has libudev.so.1. http://crbug.com/145160
+ # Same for Ubuntu 13.04. http://crbug.com/226002
+ LIBUDEV_0=libudev.so.0
+ LIBUDEV_1=libudev.so.1
+
+ add_udev_symlinks() {
+ get_lib_dir
+
+ ln -snf "/$LIBDIR/$LIBUDEV_1" "/opt/slimjet/$LIBUDEV_0"
+
+ }
+
+ remove_udev_symlinks() {
+ rm -rf "/opt/slimjet/$LIBUDEV_0"
+ }
+
+ remove_udev_symlinks
+ add_udev_symlinks
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+
+
+ # Remove icons from the system icons
+ XDG_ICON_RESOURCE="`which xdg-icon-resource 2> /dev/null || true`"
+ if [ ! -x "$XDG_ICON_RESOURCE" ]; then
+ echo "Error: Could not find xdg-icon-resource" >&2
+ exit 1
+ fi
+ for icon in "/opt/slimjet/product_logo_"*.png; do
+ size="${icon##*/product_logo_}"
+ "$XDG_ICON_RESOURCE" uninstall --size "${size%.png}" "flashpeak-slimjet"
+ done
+
+ UPDATE_MENUS="`which update-mime-database usr/share/mime &> /dev/null 2> /dev/null || true`"
+ if [ -x "$UPDATE_MENUS" ]; then
+ update-mime-database usr/share/mime &> /dev/null
+ fi
+
+ # Update cache of .desktop file MIME types. Non-fatal since it's just a cache.
+ update-desktop-database > /dev/null 2>&1 || true
+
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+
+
+ ARCH=$(uname -m)
+
+
+ get_lib_dir() {
+ if [ "$ARCH" = "i686" ]; then
+ LIBDIR=/usr/lib
+ elif [ "$ARCH" = "x86_64" ]; then
+ LIBDIR=/usr/lib64
+ else
+ echo Unknown CPU Architecture: "$ARCH"
+ exit 1
+ fi
+ }
+
+ NSS_FILES="libnspr4.so.0d libplds4.so.0d libplc4.so.0d libssl3.so.1d libnss3.so.1d libsmime3.so.1d libnssutil3.so.1d"
+
+ add_nss_symlinks() {
+ get_lib_dir
+ for f in $NSS_FILES
+ do
+ target=$(echo $f | sed 's/.[01]d$//')
+ if [ -f "/$LIBDIR/$target" ]; then
+ ln -snf "/$LIBDIR/$target" "/opt/slimjet/$f"
+ elif [ -f "/usr/$LIBDIR/$target" ]; then
+ ln -snf "/usr/$LIBDIR/$target" "/opt/slimjet/$f"
+ else
+ echo $f not found in "/$LIBDIR/$target" or "/usr/$LIBDIR/$target".
+ exit 1
+ fi
+ done
+ }
+
+ remove_nss_symlinks() {
+ for f in $NSS_FILES
+ do
+ rm -rf "/opt/slimjet/$f"
+ done
+ }
+
+ # Fedora 18 now has libudev.so.1. http://crbug.com/145160
+ # Same for Ubuntu 13.04. http://crbug.com/226002
+ LIBUDEV_0=libudev.so.0
+ LIBUDEV_1=libudev.so.1
+
+
+ remove_udev_symlinks() {
+ rm -rf "/opt/slimjet/$LIBUDEV_0"
+ }
+
+ remove_udev_symlinks
+ update-desktop-database -q
+}