From: Carl Hetherington Date: Sat, 24 Oct 2020 18:44:24 +0000 (+0200) Subject: Add uninstaller for the .pkg part of the disk writer on macOS (#1740). X-Git-Tag: v2.15.106~7 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=bed96d486f85a9fa5171e2cdaa3858581d631b3a Add uninstaller for the .pkg part of the disk writer on macOS (#1740). --- diff --git a/platform/osx/make_dmg.sh b/platform/osx/make_dmg.sh index 850a2a4f7..a6755e918 100644 --- a/platform/osx/make_dmg.sh +++ b/platform/osx/make_dmg.sh @@ -516,6 +516,7 @@ make_dmg "$appdir" "" "DCP-o-matic Combiner" setup "DCP-o-matic 2 Disk Writer.app" copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_disk "$approot/MacOS" copy $ROOT src/openssl/apps/openssl "$approot/MacOS" +cp $prefix/src/dcpomatic/platform/osx/uninstall_disk.applescript "$approot/Resources" cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_disk.Info.plist "$approot/Info.plist" rl=("$approot/MacOS/dcpomatic2_disk" "$approot/Frameworks/"*.dylib) relink_relative "${rl[@]}" diff --git a/platform/osx/set_paths.sh b/platform/osx/set_paths.sh index 68db2e2b2..5a84a82d9 100644 --- a/platform/osx/set_paths.sh +++ b/platform/osx/set_paths.sh @@ -1,4 +1,4 @@ -base=$HOME/test +base=$HOME/dcpomatic env=$HOME/osx-environment sdk=$HOME/SDK diff --git a/platform/osx/uninstall_disk.applescript b/platform/osx/uninstall_disk.applescript new file mode 100644 index 000000000..75caee3c8 --- /dev/null +++ b/platform/osx/uninstall_disk.applescript @@ -0,0 +1,24 @@ +-- Copyright (C) 2020 Carl Hetherington +-- +-- This file is part of DCP-o-matic. +-- +-- DCP-o-matic is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- DCP-o-matic is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with DCP-o-matic. If not, see . + +set askText to "Do you want to uninstall the .pkg part of the DCP-o-matic Disk Writer?" +set reply to (display dialog askText buttons {"Cancel", "Uninstall"} default button "Uninstall" cancel button "Cancel") +if button returned of reply = "Uninstall" then + do shell script "rm -rf \"/Library/Application Support/com.dcpomatic\"" with administrator privileges + set doneText to "Uninstall complete. Now close and delete the DCP-o-matic Disk Writer app." + display dialog doneText buttons {"OK"} +end if diff --git a/run/dcpomatic_disk b/run/dcpomatic_disk index 990800461..ce8366012 100755 --- a/run/dcpomatic_disk +++ b/run/dcpomatic_disk @@ -1,7 +1,7 @@ #!/bin/bash export LD_LIBRARY_PATH=build/src/lib:build/src/wx:build/src/asdcplib/src:$LD_LIBRARY_PATH -export DYLD_LIBRARY_PATH=build/src/lib:build/src/wx:build/src/asdcplib/src:/Users/carl/Environments/dcpomatic/64/lib +export DYLD_LIBRARY_PATH=build/src/lib:build/src/wx:build/src/asdcplib/src:/Users/ci/osx-environment/64/lib if [ "$1" == "--debug" ]; then shift gdb --args build/src/tools/dcpomatic2_disk $* diff --git a/src/tools/dcpomatic_disk.cc b/src/tools/dcpomatic_disk.cc index 92429aa53..1a3c3d5fe 100644 --- a/src/tools/dcpomatic_disk.cc +++ b/src/tools/dcpomatic_disk.cc @@ -58,6 +58,13 @@ using namespace boost::placeholders; #endif +#ifdef DCPOMATIC_OSX +enum { + ID_tools_uninstall = 1, +}; +#endif + + class DOMFrame : public wxFrame { public: @@ -66,6 +73,15 @@ public: , _nanomsg (true) , _sizer (new wxBoxSizer(wxVERTICAL)) { +#ifdef DCPOMATIC_OSX + wxMenuBar* bar = new wxMenuBar; + wxMenu* tools = new wxMenu; + tools->Append(ID_tools_uninstall, _("Uninstall...")); + bar->Append(tools, _("Tools")); + SetMenuBar (bar); + Bind (wxEVT_MENU, boost::bind(&DOMFrame::uninstall, this), ID_tools_uninstall); +#endif + /* Use a panel as the only child of the Frame so that we avoid the dark-grey background on Windows. */ @@ -163,6 +179,14 @@ private: } +#ifdef DCPOMATIC_OSX + void uninstall() + { + system(String::compose("osascript \"%1/uninstall_disk.applescript\"", resources_path().string()).c_str()); + } +#endif + + bool should_close () { if (!JobManager::instance()->work_to_do()) { @@ -349,6 +373,7 @@ public: #endif #ifdef DCPOMATIC_OSX + dcpomatic_sleep_seconds (1); make_foreground_application (); #endif