mirror of
https://github.com/saltstack-formulas/mysql-formula.git
synced 2025-04-16 17:50:27 +00:00
MacOS Desktop shortcut handling
This commit is contained in:
parent
4cdc21bc92
commit
0e382508fc
5 changed files with 97 additions and 42 deletions
|
@ -23,7 +23,7 @@ Meta-state including all server packages in correct order. This meta-state does
|
|||
``mysql.macos``
|
||||
----------------
|
||||
|
||||
Install "MySQL Community Server", "MySQL Workbench", and any other enabled products on MacOS.
|
||||
Install "MySQL Community Server", "MySQL Workbench", and other related mysql products on MacOS (and create Desktop shortcuts).
|
||||
|
||||
``mysql.macos.remove``
|
||||
----------------
|
||||
|
|
|
@ -27,7 +27,7 @@ mysql:
|
|||
group:
|
||||
dl:
|
||||
tmpdir: /tmp/mysqltmp
|
||||
bindir: /usr/local/bin
|
||||
prefix: /usr/local
|
||||
opts: -s -L
|
||||
interval: 60
|
||||
retries: 2
|
||||
|
@ -36,58 +36,60 @@ mysql:
|
|||
enabled: True
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-8.0.11-macos10.13-x86_64.dmg
|
||||
sum: 'md5=602a84390ecf3d82025b1d99fc594124'
|
||||
dest: /Applications/MySQL.app
|
||||
isapp: False
|
||||
path: /usr/local/mysql
|
||||
app: mysql
|
||||
workbench:
|
||||
enabled: True
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-workbench-community-8.0.11-rc-macos-x86_64.dmg
|
||||
sum: 'md5=37c5ae5bd75a4e1804ae6e0127d68611'
|
||||
dest: /Applications/MySQLWorkbench.app
|
||||
isapp: True
|
||||
path: /Applications/MySQLWorkbench/Contents/Versions/latest
|
||||
app: MySQLWorkbench
|
||||
cluster:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-cluster-gpl-7.6.6-macos10.13-x86_64.dmg
|
||||
sum: 'md5=0df975908e7d8e4e8c1003d95edf4721'
|
||||
dest: /Applications/MySQLCluster.app
|
||||
isapp: False
|
||||
path: /usr/local/mysqlcluster
|
||||
app: MySQLCluster
|
||||
router:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-router-8.0.11-macos10.13-x86-64bit.dmg
|
||||
sum: 'md5=8dd536f2f223933ecbfb8b19e54ee2f6'
|
||||
dest: /Applications/MySQLRouter.app
|
||||
isapp: False
|
||||
app: MySQLRouter
|
||||
utilities:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-utilities-1.6.5-macos10.12.dmg
|
||||
sum: 'md5=4c8e75bb217b8293dcdeb915b649c2c8'
|
||||
dest: /Applications/MySQLUtilities.app
|
||||
isapp: True ## ??
|
||||
app: MySQLUtilties
|
||||
shell:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-shell-8.0.11-macos10.13-x86-64bit.dmg
|
||||
sum: 'md5=43db4f0fc39f88c1d7be4a4f52cec363'
|
||||
dest: /Applications/MySQLShell.app
|
||||
isapp: True ## ??
|
||||
app: MySQLShell
|
||||
proxy:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-osx10.7-x86-32bit.tar.gz
|
||||
sum: 'md5=107df22412aa8c483d2021e1af24ee22'
|
||||
dest: /opt/mysql/proxy
|
||||
connnector:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-connector-nodejs-8.0.11.tar.gz
|
||||
sum: 'md5=dece7fe5607918ba68499ef07c31508d'
|
||||
dest: /opt/mysql/connector/nodejs
|
||||
forvisualstudio:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-for-visualstudio-2.0.4-src.zip
|
||||
sum: 'md5=fcf39316505ee2921e31a431eae77a9c'
|
||||
dest: /opt/mysql/visualstudio
|
||||
forexcel:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-for-excel-1.3.6-src.zip
|
||||
sum: 'md5=2cc8b65eb72a1b07a6e4e2665e2a29e3'
|
||||
dest: /opt/mysql/excel
|
||||
notifier:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-notifier-1.1.6-src.zip
|
||||
sum: 'md5=349f1994681763fd6626a8ddf6be5363'
|
||||
dest: /opt/mysql/notifier
|
||||
|
||||
#The following dict names are reserved for pillar data (see pillar.example)
|
||||
global: {}
|
||||
|
|
10
mysql/files/mac_shortcut.sh
Executable file
10
mysql/files/mac_shortcut.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CMD='/usr/bin/osascript -e'
|
||||
if [[ -f "{{ 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" ]]
|
||||
then
|
||||
${CMD} "tell application \"Finder\" to make new Alias at (path to desktop folder) to POSIX file \"{{ dir }}/{{ app }}\""
|
||||
fi
|
|
@ -1,9 +1,9 @@
|
|||
### mysql/macos/install.sls
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: ft=yaml
|
||||
{%- from salt.file.dirname(tpldir) ~ "/map.jinja" import mysql with context -%}
|
||||
{%- from salt.file.dirname(tpldir) ~ "/map.jinja" import mysql with context %}
|
||||
|
||||
{%- set dl = mysql.macos.dl %}
|
||||
{%- set dl = mysql.macos.dl %}
|
||||
|
||||
mysql-macos-extract-dirs:
|
||||
file.directory:
|
||||
|
@ -11,13 +11,14 @@ mysql-macos-extract-dirs:
|
|||
- makedirs: True
|
||||
- clean: True
|
||||
|
||||
{%- for product, data in mysql.macos.products.items() if data.enabled %}
|
||||
{%- set archivename = data.url.split('/')[-1]|quote %}
|
||||
{%- set archiveformat = archivename.split('.')[-1] %}
|
||||
{%- for product, data in mysql.macos.products.items() if "enabled" in data and data.enabled %}
|
||||
{%- set archivefile = data.url.split('/')[-1] %}
|
||||
{%- set archiveformat = archivefile.split('.')[-1] %}
|
||||
{%- set archivename = archivefile|replace('.dmg', '')|replace('.tar.gz', '')|replace('.zip', '') %}
|
||||
|
||||
mysql-macos-remove-previous-{{ product }}-download-archive:
|
||||
file.absent:
|
||||
- name: {{ dl.tmpdir }}/{{ archivename }}
|
||||
- name: {{ dl.tmpdir }}/{{ archivefile }}
|
||||
- require_in:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
|
||||
|
@ -25,7 +26,7 @@ mysql-macos-download-{{ product }}-archive:
|
|||
pkg.installed:
|
||||
- name: curl
|
||||
cmd.run:
|
||||
- name: curl {{ dl.opts }} -o {{ dl.tmpdir }}/{{ archivename }} {{ data.url }}
|
||||
- name: curl {{ dl.opts }} -o {{ dl.tmpdir }}/{{ archivefile }} {{ data.url }}
|
||||
{% if grains['saltversioninfo'] >= [2017, 7, 0] %}
|
||||
- retry:
|
||||
attempts: {{ dl.retries }}
|
||||
|
@ -34,52 +35,76 @@ mysql-macos-download-{{ product }}-archive:
|
|||
- require:
|
||||
- mysql-macos-extract-dirs
|
||||
|
||||
{%- if data.sum %}
|
||||
{%- if data.sum %}
|
||||
mysql-macos-check-{{ product }}-archive-hash:
|
||||
module.run:
|
||||
- name: file.check_hash
|
||||
- path: {{ dl.tmpdir }}/{{ archivename }}
|
||||
- path: {{ dl.tmpdir }}/{{ archivefile }}
|
||||
- file_hash: {{ data.sum }}
|
||||
- onchanges:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
- require_in:
|
||||
- mysql-macos-{{ product }}-install
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
mysql-macos-{{ product }}-install:
|
||||
{%- if archiveformat in ('dmg',) %}
|
||||
{%- if archiveformat in ("dmg",) %}
|
||||
|
||||
macpackage.installed:
|
||||
- name: "{{ dl.tmpdir }}/{{ archivename }}"
|
||||
- name: "{{ dl.tmpdir }}/{{ archivefile }}"
|
||||
- dmg: True
|
||||
- app: {{ 'True' if "isapp" not in data else data.isapp }}
|
||||
- force: True
|
||||
- allow_untrusted: True
|
||||
- onchanges:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
- require_in:
|
||||
- mysql-macos-remove-{{ product }}-archive
|
||||
file.append:
|
||||
- name: {{ mysql.macos.userhomes }}/{{ mysql.macos.user }}/.bash_profile
|
||||
- text: 'export PATH=$PATH:{{ data.dest }}/Contents/Versions/latest/bin'
|
||||
|
||||
{%- elif archiveformat in ('gz', 'zip',) %}
|
||||
{%- elif archiveformat in ("gz", "zip",) %}
|
||||
|
||||
archive.extracted:
|
||||
- source: file://{{ dl.tmpdir }}{{ archivename }}
|
||||
- name: {{ dl.bindir }}
|
||||
- source: file://{{ dl.tmpdir }}{{ archivefile }}
|
||||
- name: {{ dl.prefix }}/{{ archivename }}
|
||||
- trim_output: True
|
||||
- source_hash: {{ data.sum }}
|
||||
- onchanges:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
|
||||
{%- endif %}
|
||||
- require_in:
|
||||
- mysql-macos-remove-{{ product }}-archive
|
||||
- mysql-macos-tidyup-{{ product }}
|
||||
|
||||
{%- endif %}
|
||||
{%- if "path" in data and data.path and "app" in data and data.app %}
|
||||
|
||||
mysql-macos-remove-{{ product }}-archive:
|
||||
mysql-macos-append-{{ product }}-path-to-bash-profile:
|
||||
file.append:
|
||||
- name: {{ mysql.macos.userhomes }}/{{ mysql.macos.user }}/.bash_profile
|
||||
- text: 'export PATH=$PATH:{{ data.path }}/bin'
|
||||
- onlyif: test -d {{ data.path }}/bin
|
||||
|
||||
mysql-macos-{{ product }}-desktop-shortcut-add:
|
||||
file.managed:
|
||||
- name: /tmp/mac_shortcut.sh
|
||||
- source: salt://mysql/files/mac_shortcut.sh
|
||||
- mode: 755
|
||||
- template: jinja
|
||||
- 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 }}
|
||||
cmd.run:
|
||||
- name: /tmp/mac_shortcut.sh add
|
||||
- runas: {{ mysql.macos.user }}
|
||||
- require:
|
||||
- file: mysql-macos-{{ product }}-desktop-shortcut-add
|
||||
|
||||
{%- endif %}
|
||||
|
||||
mysql-macos-tidyup-{{ product }}:
|
||||
file.absent:
|
||||
- name: {{ dl.tmpdir }}/{{ archivename }}
|
||||
- name: {{ dl.tmpdir }}/{{ archivefile }}
|
||||
- onchanges:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
|
||||
{%- endfor %}
|
||||
{% endfor %}
|
||||
|
||||
|
|
|
@ -3,13 +3,31 @@
|
|||
# vim: ft=yaml
|
||||
{%- from salt.file.dirname(tpldir) ~ "/map.jinja" import mysql with context -%}
|
||||
|
||||
{%- for product, data in mysql.macos.products.items() if data.enabled %}
|
||||
{%- set archivename = data.url.split('/')[-1] %}
|
||||
{%- set dl = mysql.macos.dl %}
|
||||
{%- for product, data in mysql.macos.products.items() if "enabled" in data and data.enabled %}
|
||||
{%- set archivename = data.url.split('/')[-1]|replace('.dmg', '')|replace('.tar.gz', '')|replace('.zip', '') %}
|
||||
|
||||
mysql-macos-{{ product }}-remove-destdir:
|
||||
file.absent:
|
||||
- names:
|
||||
- {{ data.dest }}
|
||||
- {{ data.path }}
|
||||
|
||||
mysql-macos-{{ product }}-desktop-shortcut-remove:
|
||||
file.managed:
|
||||
- name: /tmp/mac_shortcut.sh
|
||||
- source: salt://mysql/files/mac_shortcut.sh
|
||||
- mode: 755
|
||||
- template: jinja
|
||||
- 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 }}
|
||||
cmd.run:
|
||||
- name: /tmp/mac_shortcut.sh remove
|
||||
- runas: {{ mysql.macos.user }}
|
||||
- require:
|
||||
- file: mysql-macos-{{ product }}-desktop-shortcut-remove
|
||||
|
||||
{%- endfor %}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue