• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Add icons to the system icons
2XDG_ICON_RESOURCE="`which xdg-icon-resource 2> /dev/null || true`"
3if [ ! -x "$XDG_ICON_RESOURCE" ]; then
4  echo "Error: Could not find xdg-icon-resource" >&2
5  exit 1
6fi
7for icon in "@@INSTALLDIR@@/product_logo_"*.png; do
8  size="${icon##*/product_logo_}"
9  "$XDG_ICON_RESOURCE" install --size "${size%.png}" "$icon" "@@PACKAGE@@"
10done
11
12UPDATE_MENUS="`which update-menus 2> /dev/null || true`"
13if [ -x "$UPDATE_MENUS" ]; then
14  update-menus
15fi
16
17# Update cache of .desktop file MIME types. Non-fatal since it's just a cache.
18update-desktop-database || true
19
20# Updates defaults.list file if present.
21update_defaults_list() {
22  # $1: name of the .desktop file
23
24  local DEFAULTS_FILE="/usr/share/applications/defaults.list"
25
26  if [ ! -f "${DEFAULTS_FILE}" ]; then
27    return
28  fi
29
30  # Split key-value pair out of MimeType= line from the .desktop file,
31  # then split semicolon-separated list of mime types (they should not contain
32  # spaces).
33  mime_types="$(grep MimeType= /usr/share/applications/${1} |
34                cut -d '=' -f 2- |
35                tr ';' ' ')"
36  for mime_type in ${mime_types}; do
37    if egrep -q "^${mime_type}=" "${DEFAULTS_FILE}"; then
38      if ! egrep -q "^${mime_type}=.*${1}" "${DEFAULTS_FILE}"; then
39        default_apps="$(grep ${mime_type}= "${DEFAULTS_FILE}" |
40                        cut -d '=' -f 2-)"
41        egrep -v "^${mime_type}=" "${DEFAULTS_FILE}" > "${DEFAULTS_FILE}.new"
42        echo "${mime_type}=${default_apps};${1}" >> "${DEFAULTS_FILE}.new"
43        mv "${DEFAULTS_FILE}.new" "${DEFAULTS_FILE}"
44      fi
45    else
46      # If there's no mention of the mime type in the file, add it.
47      echo "${mime_type}=${1};" >> "${DEFAULTS_FILE}"
48    fi
49  done
50}
51
52update_defaults_list "@@PACKAGE@@.desktop"
53
54# This function uses sed to insert the contents of one file into another file,
55# after the first line matching a given regular expression. If there is no
56# matching line, then the file is unchanged.
57insert_after_first_match() {
58  # $1: file to update
59  # $2: regular expression
60  # $3: file to insert
61  sed -i -e "1,/$2/ {
62    /$2/ r $3
63    }" "$1"
64}
65
66# If /usr/share/gnome-control-center/gnome-default-applications.xml exists, it
67# may need to be updated to add ourselves to the default applications list. If
68# we find the file and it does not seem to contain our patch already (the patch
69# is safe to leave even after uninstall), update it.
70GNOME_DFL_APPS=/usr/share/gnome-control-center/gnome-default-applications.xml
71if [ -f "$GNOME_DFL_APPS" ]; then
72# Conditionally insert the contents of the file "default-app-block" after the
73# first "<web-browsers>" line we find in gnome-default-applications.xml
74  fgrep -q "@@MENUNAME@@" "$GNOME_DFL_APPS" || insert_after_first_match \
75    "$GNOME_DFL_APPS" \
76    "^[ 	]*<web-browsers>[ 	]*$" \
77    "@@INSTALLDIR@@/default-app-block"
78fi
79