From d20ce192cb250acdb8e7b940a64e982bd867b724 Mon Sep 17 00:00:00 2001
From: N <noel.mcloughlin@gmail.com>
Date: Tue, 2 Oct 2018 20:29:24 +0100
Subject: [PATCH] fix code for MacOS desktop shortcuts

---
 mysql/files/mac_shortcut.sh | 10 ++++++----
 mysql/macos/install.sls     |  3 ++-
 mysql/macos/remove.sls      |  7 ++++---
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/mysql/files/mac_shortcut.sh b/mysql/files/mac_shortcut.sh
index f768592..96e1163 100755
--- a/mysql/files/mac_shortcut.sh
+++ b/mysql/files/mac_shortcut.sh
@@ -1,10 +1,12 @@
 #!/usr/bin/env bash
 
 CMD='/usr/bin/osascript -e'
-if [[ -f "{{ home }}/{{ user }}/Desktop/{{ app }}" ]] && [[ "${1}" -eq "remove" ]]
+
+if [[ -e "{{ home }}/{{ user }}/Desktop/{{ app }}" ]] && [[ "${1}" -eq "remove" ]]
 then
-    ${CMD} "tell application \"Finder\" to delete file \"{{home}}/{{user}}/Desktop/{{ app }}\""
-elif [[ -d "{{ dir }}/{{ app }}" ]] && [[ "${1}" -eq "add" ]]
+    $CMD "tell application \"Finder\" to delete POSIX file \"{{home}}/{{user}}/Desktop/{{ app }}\""
+elif [[ -e "{{ dir }}/{{ app ~ '.app' if suffix else app }}" ]] && [[ "${1}" -eq "add" ]]
 then
-    ${CMD} "tell application \"Finder\" to make new Alias at (path to desktop folder) to POSIX file \"{{ dir }}/{{ app }}\""
+    $CMD "tell application \"Finder\" to delete POSIX file \"{{home}}/{{user}}/Desktop/{{ app }}\"" >/dev/null 2>&1
+    $CMD "tell application \"Finder\" to make new Alias at (path to desktop folder) to POSIX file \"{{ dir }}/{{ app }}{{ suffix or '' }}\""
 fi
diff --git a/mysql/macos/install.sls b/mysql/macos/install.sls
index 024b4f5..7e5509b 100644
--- a/mysql/macos/install.sls
+++ b/mysql/macos/install.sls
@@ -90,8 +90,9 @@ mysql-macos-{{ product }}-desktop-shortcut-add:
     - context:
       user: {{ mysql.macos.user }}
       home: {{ mysql.macos.userhomes }}
-      dir: {{'/Applications/' ~ data.app ~ '.app' if "isapp" in data and data.isapp else dl.prefix ~ '/' ~ archivename ~ '/bin'}}
       app: {{ data.app }}
+      dir: {{ '/Applications' if "isapp" in data and data.isapp else dl.prefix ~ '/' ~ archivename ~ '/bin' }}
+      suffix: {{ '.app' if "isapp" in data and data.isapp else '' }}
   cmd.run:
     - name: /tmp/mac_shortcut.sh add
     - runas: {{ mysql.macos.user }}
diff --git a/mysql/macos/remove.sls b/mysql/macos/remove.sls
index 77c7c2e..d81f2ad 100644
--- a/mysql/macos/remove.sls
+++ b/mysql/macos/remove.sls
@@ -4,13 +4,13 @@
 {%- from salt.file.dirname(tpldir) ~ "/map.jinja" import mysql with context -%}
 
   {%- set dl = mysql.macos.dl %}
-  {%- for product, data in mysql.macos.products.items() if "enabled" in data and data.enabled %}
+  {%- for product, data in mysql.macos.products.items() if "app" in data and data.app and "url" in data and data.url  %}
       {%- set archivename = data.url.split('/')[-1]|replace('.dmg', '')|replace('.tar.gz', '')|replace('.zip', '') %}
 
 mysql-macos-{{ product }}-remove-destdir:
   file.absent:
     - names:
-      - {{ data.path }}
+      - {{ '/Applications' ~ data.app ~ '.app' if "isapp" in data and data.isapp else dl.prefix ~ '/' ~ archivename  }}
 
 mysql-macos-{{ product }}-desktop-shortcut-remove:
   file.managed:
@@ -21,8 +21,9 @@ mysql-macos-{{ product }}-desktop-shortcut-remove:
     - context:
       user: {{ mysql.macos.user }}
       home: {{ mysql.macos.userhomes }}
-      dir: {{'/Applications/' ~ data.app ~ '.app' if "isapp" in data and data.isapp else dl.prefix ~ '/' ~ archivename ~ '/bin'}}
       app: {{ data.app }}
+      dir: {{ '/Applications' if "isapp" in data and data.isapp else dl.prefix ~ '/' ~ archivename ~ '/bin' }}
+      suffix: {{ '.app' if "isapp" in data and data.isapp else '' }}
   cmd.run:
     - name: /tmp/mac_shortcut.sh remove
     - runas: {{ mysql.macos.user }}
-- 
GitLab