diff options
Diffstat (limited to 'davinci-resolve.install')
-rw-r--r-- | davinci-resolve.install | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/davinci-resolve.install b/davinci-resolve.install new file mode 100644 index 000000000000..fcb569335e65 --- /dev/null +++ b/davinci-resolve.install @@ -0,0 +1,113 @@ +pre_install() +{ + echo "Removing old files..." + DIRS_TO_REMOVE=( + "Onboarding" + "libs" + "plugins" + "UI_Resource") + + if [[ -d ${/opt/${_pkgname}} ]]; then + echo "Removing old files" + for dir in "${DIRS_TO_REMOVE[@]}"; do + rm -rf "$/opt/${_pkgname}/$dir" + done + fi + +# TODO: We should talk to the BMD developers about it. Pretty sensitive subject systemd @_@ +#if [[ $EUID -ne 0 ]]; then +# # Script being run as non-root user +# USER_UID=$EUID +#else +# # Script being run as root +# USER_UID=$SUDO_UID +# if [ -z "$USER_UID" ]; then +# USER_UID=$PKEXEC_UID +# fi +# if [ -z "$USER_UID" ]; then +# USER_UID=0 +# fi +#fi + +#USER_HOME=`awk -v val=$USER_UID -F ":" '\$3==val{print \$6;exit}' /etc/passwd` + +# if [[ -d ${/opt/${_pkgname}} && ${/opt/${_pkgname}} == /home/resolve* ]]; then +# chown $USER_UID "$/opt/${_pkgname}" +# else +# # Uninstall the panel daemon only on Standalone install +# # Uninstall BMD panel daemon +# SVC_NAME=bmdpaneld + +# # Kill the daemon in case it is running +# killall -9 ${SVC_NAME} + +# if [ -f /etc/init.d/${SVC_NAME} ]; then +# echo "#Uninstalling BMD panel service..." +# service ${SVC_NAME} stop +# /sbin/chkconfig --del ${SVC_NAME} +# rm -f /etc/init.d/${SVC_NAME} +# fi +# mkdir -m 0775 -p "$/opt/${_pkgname}" +# chown $USER_UID "$/opt/${_pkgname}" -R +# fi +} + +post_install() +{ + echo "Installing Application icons..." + xdg-icon-resource install --size 64 "${pkgdir}/graphics/DV_Resolve.png" DaVinci-Resolve 2>&1 >> /dev/null + xdg-icon-resource install --size 64 "${pkgdir}/graphics/DV_ResolveProj.png" DaVinci-ResolveProj 2>&1 >> /dev/null + + xdg-icon-resource install --size 64 --context mimetypes "${pkgdir}/graphics/DV_ResolveProj.png" application-x-resolveproj 2>&1 >> /dev/null + xdg-mime install --novendor "${pkgdir}/share/resolve.xml" 2>&1 >> /dev/null + + echo "Updating icon cache..." + gtk-update-icon-cache "share/icons/hicolor" -f 2>&1 >> /dev/null + update-mime-database "share/mime/" 2>&1 >> /dev/null + + echo "Installing the default app associations..." + # $1 is .desktop + # $2 is mime/type + + DEFAULT_MIME_FILE="/usr/share/applications/defaults.list" + grep -v "application/x-resolveproj=" $DEFAULT_MIME_FILE > ${DEFAULT_MIME_FILE}.new 2> /dev/null + if ! grep "[Default Applications]" ${DEFAULT_MIME_FILE}.new > /dev/null; then + echo "[Default Applications]" >> ${DEFAULT_MIME_FILE}.new + fi + echo application/x-resolveproj=${resolve_app_name}.desktop >> ${DEFAULT_MIME_FILE}.new + mv ${DEFAULT_MIME_FILE}.new $DEFAULT_MIME_FILE + + # reload the udev rules + udevadm control --reload-rules 2>&1 + udevadm trigger 2>&1 + + # Ensure panel permissions are correctly set for the current session + DEVICES=`lsusb | grep "ID 1edb\|ID 096e" | sed -e "s/:/ /g" | awk '{print"/dev/bus/usb/"$2"/"$4}'` + for DEV in $DEVICES + do + echo "Fixing usb permissions for $DEV" + chmod a+w $DEV + done +} + +pre_upgrade() +{ + pre_install +} + +post_remove() +{ + # Remove entry from /usr/share/applications/defaults.list + if [ "$(grep -ir 'application/x-resolveproj=com.blackmagicdesign.resolve.desktop' /usr/share/applications/defaults.list)" ]; then + sed -i '/application\/x-resolveproj=com.blackmagicdesign.resolve.desktop/d' /usr/share/applications/defaults.list + fi + + # Removing entry from /usr/share/applications/mimeinfo.cache + if [ "$(grep -ir 'application/x-resolveproj=com.blackmagicdesign.resolve.desktop;' /usr/share/applications/mimeinfo.cache)" ]; then + sed -i '/application\/x-resolveproj=com.blackmagicdesign.resolve.desktop;/d' /usr/share/applications/mimeinfo.cache + fi + + # Remove udev rules + rm -rf /usr/lib/udev/rules.d/75-davincipanel.rules + rm -rf /usr/lib/udev/rules.d/75-sdx.rules +} |