summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-10-24 20:44:24 +0200
committerCarl Hetherington <cth@carlh.net>2020-10-27 21:45:32 +0100
commitbed96d486f85a9fa5171e2cdaa3858581d631b3a (patch)
tree3762b496ef7180a3569c72b3626822e2fefa55c0
parent1dfb125a8e07f5185c229260ac0643e47eee5026 (diff)
Add uninstaller for the .pkg part of the disk writer on macOS (#1740).
-rw-r--r--platform/osx/make_dmg.sh1
-rw-r--r--platform/osx/set_paths.sh2
-rw-r--r--platform/osx/uninstall_disk.applescript24
-rwxr-xr-xrun/dcpomatic_disk2
-rw-r--r--src/tools/dcpomatic_disk.cc25
5 files changed, 52 insertions, 2 deletions
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 <cth@carlh.net>
+--
+-- 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 <http://www.gnu.org/licenses/>.
+
+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