-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmagic_installer_container.sh
More file actions
executable file
·65 lines (55 loc) · 19.3 KB
/
magic_installer_container.sh
File metadata and controls
executable file
·65 lines (55 loc) · 19.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
# Dennis Kruemmel, 2018
### EDIT ME ###
path="/Library/Application Support/Scripts"
skipping_counter_dir="${path}/magic_installer"
identifier="com.mycompany"
### DO NOT EDIT BELOW THIS LINE ###
[[ -d "${path}" ]] || mkdir -p "${path}"
echo "
IyEvYmluL2Jhc2gKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBEZW5uaXMgS3J1ZW1tZWwsIDIwMTgKIwojIHdpdGggY29udGVudCBmcm9tCiMgICBodHRwczovL2dpdGh1Yi5jb20vaG9tZWJ5c2l4L2F1dG8tdXBkYXRlLW1hZ2ljCiMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIwojIFRoaXMgc2NyaXB0IGlzIGRlc2lnbmVkIHRvIGJlIGVtYmVkZGVkIGluIGEgaGVscGVyIHNjcmlwdCAibWFnaWNfaW5zdGFsbGVyX2NvbnRhaW5lci5zaCIuCiMgYmFzZTY0IC1pIC4vbWFnaWNfaW5zdGFsbGVyLnNoIHwgcGJjb3B5CiMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBOQU1FCiMgICBtYWdpY19pbnN0YWxsZXIuc2ggLS0gc2NyaXB0IGZvciBtYW5hZ2VkIGluc3RhbGxhdGlvbiB0aHJvdWdoIGphbWYgcHJvLgojIAojIFNZTk9QU0lTCiMgICAuL21hZ2ljX2luc3RhbGxlci5zaCA8bW91bnRQb2ludD4gPGNvbXB1dGVyTmFtZT4gPHVzZXJOYW1lPiAiPHByb2Nlc3NOYW1lPls7PHByb2Nlc3NOYW1lPjsuLi5dIiAiWzxhcHBWZXJzaW9uPl0iICJbPGRpc3BsYXluYW1lPl0iICI8cGtnVG9JbnN0YWxsPls7PHBrZ1RvSW5zdGFsbD47Li4uXSIgWzxkZWFkbGluZT5dIFs8aWNvbj5dIFthcHBWZXJzaW9uT2xkXQojIAojIERFU0NSSVBUSU9OCiMgICBtb3VudFBvaW50CiMgICAgICAgdGFyZ2V0IGZvciBpbnN0YWxsZXIKIyAgICAgICBXaWxsIGJlIGF1dG9tYXRpY2FsbHkgc2V0IGZyb20gamFtZiBwcm8KIyAgICAgICBFeGFtcGxlOgojICAgICAgICAgIi8iCiMgCiMgICBjb21wdXRlck5hbWUKIyAgICAgICBob3N0bmFtZSBmcm9tIHRoZSBkZXN0aW5hdGlvbiBjb21wdXRlcgojICAgICAgIFdpbGwgYmUgYXV0b21hdGljYWxseSBzZXQgZnJvbSBqYW1mIHBybwojICAgICAgIEV4YW1wbGU6CiMgICAgICAgICAiTUJQMjAxNy0wMDEiCiMKIyAgIHVzZXJOYW1lCiMgICAgICAgbG9nZ2VkIGluIHVzZXIKIyAgICAgICBXaWxsIGJlIGF1dG9tYXRpY2FsbHkgc2V0IGZyb20gamFtZiBwcm8KIyAgICAgICBFeGFtcGxlOgojICAgICAgICAgIkNsYXJhLktvcm4iCiMgCiMgICBwcm9jZXNzTmFtZQojICAgICAgIHByb2Nlc3MgdG8gd2F0Y2guIFVzZSA7IGFzIGRlbGltaXRlciBmb3IgbXVsdGlwbGUgcHJvY2VzcyBuYW1lcwojICAgICAgIEV4YW1wbGU6CiMgICAgICAgICAiZmlyZWZveCIKIyAgICAgICAgICJmaXJlZm94O3NhZmFyaSQiCiMKIyAgIGFwcFZlcnNpb24gKE9wdGlvbmFsKQojICAgICAgIFZlcnNpb24gTnVtYmVyIGZyb20gdGhlIGFwcCB3aGljaCB3aWxsIGJlIGluc3RhbGxlZC4KIyAgICAgICBFeGFtcGxlOgojICAgICAgICAgIjUyLjcuMyIKIwojICAgZGlzcGxheW5hbWUgKE9wdGlvbmFsKQojICAgICAgIE5hbWUgd2hpY2ggYmUgdXNlZCBmb3Igbm90aWZpY2F0aW9ucwojICAgICAgIEV4YW1wbGU6CiMgICAgICAgICAiRmlyZWZveCB3aXRoIENDSyIKIwojICAgcGtnVG9JbnN0YWxsCiMgICAgICAgUEtHcyBjYWNoZWQgaW4gdGhlIEpBTUYgIldhaXRpbmcgUm9vbSIuIFVzZSA7IGFzIGRlbGltaXRlciBmb3IgbXVsdGlwbGUgUGFja2FnZXMgdG8gaW5zdGFsbC4KIyAgICAgICBFeGFtcGxlOgojICAgICAgICAgIk15UGFja2FnZS0xLjAuMC5wa2ciCiMgICAgICAgICAiTXlQYWNrYWdlLTEuMC4wLnBrZztNeVBhY2thZ2VVcGRhdGUtMS4xLjAucGtnIgojIAojICAgZGVhZGxpbmUgKE9wdGlvbmFsKQojICAgICAgIGRhdGUgYXMgdW5peCB0aW1lc3RhbXAgb2YgdGhlIGZvcmNlZCBpbnN0YWxsLiBBZnRlciB0aGlzIGRhdGUgdGhlIGNvdW50ZG93biB3aWxsIGJlIGlnbm9yZWQuCiMgICAgICAgSWYgdGhlIGRlYWRsaW5lIGlzIHNldCwgdGhlIGZvcmNlZCBpbnN0YWxsIHdpbGwgYmUgYWN0aXZhdGVkLgojICAgICAgIGNhbGN1bGF0ZSB0aGUgZGVhZGxpbmU6CiMgICAgICAgZGF0ZSAtaiAtZiAiJWQuJW0uJVkgJUg6JU06JVMiICIzMS4xMi4yMDE4IDA2OjAwOjAwIiArJXMKIyAgICAgICBFeGFtcGxlOgojICAgICAgICAgIjE1NDYyMzI0MDAiCiMKIyAgIGljb24gKE9wdGlvbmFsKQojICAgICAgIFRoaXMgaWNvbiB3aWxsIGJlIHVzZWQgZm9yIHRoZSBtZXNzYWdlYm94CiMgICAgICAgRXhhbXBsZToKIyAgICAgICAgICIvQXBwbGljYXRpb25zL0ZpcmVmb3guYXBwL0NvbnRlbnRzL1Jlc291cmNlcy9maXJlZm94LmljbnMiCiMKIyAgIGFwcFZlcnNpb25PbGQgKE9wdGlvbmFsKQojICAgICAgIGNvbW1hbmQgdG8gZGV0ZXJtaW5lIHRoZSB2ZXJzaW9uIGZyb20gdGhlIG9sZCBpbnN0YWxsZWQgYXBwLgojICAgICAgIEV4YW1wbGU6CiMgICAgICAgICAiZGVmYXVsdHMgcmVhZCAvQXBwbGljYXRpb25zL0ZpcmVmb3guYXBwL0NvbnRlbnRzL0luZm8ucGxpc3QgQ0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmciCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpsb2dGaWxlPSIvdmFyL2xvZy9tYWdpY19pbnN0YWxsZXIubG9nIgpTY3JpcHRMb2coKSB7ICMgUmUtZGlyZWN0IGxvZ2dpbmcgdG8gdGhlIGxvZyBmaWxlIC4uLgoJaWYgW1sgISAteiAiJHtsb2dGaWxlfSIgXV0gJiYgW1sgISAtZiAiJHtsb2dGaWxlfSIgXV07IHRoZW4KCQkvdXNyL2Jpbi90b3VjaCAiJHtsb2dGaWxlfSIgfHwgZXhpdCAxCgllbGlmIFtbIC16ICIke2xvZ0ZpbGV9IiBdXTsgdGhlbgoJCWxvZ0ZpbGU9Ii92YXIvbG9nL3N5c3RlbS5sb2ciCgkJL3Vzci9iaW4vdG91Y2ggIiR7bG9nRmlsZX0iIHx8IGV4aXQgMQoJZmkKCiAgICBleGVjIDM+JjEgND4mMiAgICAgICAgICAjIFNhdmUgc3RhbmRhcmQgb3V0cHV0IGFuZCBzdGFuZGFyZCBlcnJvcgogICAgZXhlYyAxPj4iJHtsb2dGaWxlfSIgICAgIyBSZWRpcmVjdCBzdGFuZGFyZCBvdXRwdXQgdG8gbG9nRmlsZQogICAgZXhlYyAyPj4iJHtsb2dGaWxlfSIgICAgIyBSZWRpcmVjdCBzdGFuZGFyZCBlcnJvciB0byBsb2dGaWxlCgogICAgU2NyaXB0TG9nTk9XPSQoZGF0ZSArJVktJW0tJWRcICVIOiVNOiVTKQogICAgL2Jpbi9lY2hvICJbJHtkaXNwbGF5bmFtZX0gfCAke1NjcmlwdExvZ05PV31dICAkezF9IiA+PiAke2xvZ0ZpbGV9CglleGVjIDE+JjMgMj4mNAp9CgpyZW1vdmVMYXVuY2hEYWVtb24oKSB7CiAgICBTY3JpcHRMb2cgIlJlbW92aW5nIExhdW5jaERhZW1vbiBcIiR7aWRlbnRpZmllcn0ubWFnaWNfaW5zdGFsbGVyXyR7YXBwbmFtZX0ucGxpc3RcIiIKICAgIGxhdW5jaGN0bCBsaXN0ICIke2lkZW50aWZpZXJ9Lm1hZ2ljX2luc3RhbGxlcl8ke2FwcG5hbWV9IiA+IC9kZXYvbnVsbCAyPiYxCiAgICBsYXVuY2hjdGxFcnJvcj0kPwogICAgaWYgW1sgIiR7bGF1bmNoY3RsRXJyb3J9IiAtZXEgMCBdXTsgdGhlbgogICAgICAgIHJtIC1mICIvTGlicmFyeS9MYXVuY2hEYWVtb25zLyR7aWRlbnRpZmllcn0ubWFnaWNfaW5zdGFsbGVyXyR7YXBwbmFtZX0ucGxpc3QiCiAgICAgICAgbGF1bmNoY3RsIHJlbW92ZSAiJHtpZGVudGlmaWVyfS5tYWdpY19pbnN0YWxsZXJfJHthcHBuYW1lfSIKICAgIGZpCn0KCkpBTUY9Ii91c3IvbG9jYWwvYmluL2phbWYiCkpBTUZfSEVMUEVSPSIvTGlicmFyeS9BcHBsaWNhdGlvbiBTdXBwb3J0L0pBTUYvYmluL2phbWZIZWxwZXIuYXBwL0NvbnRlbnRzL01hY09TL2phbWZIZWxwZXIiCkpBTUZfSUNPTlM9Ii9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnQvSkFNRi9iaW4vamFtZkhlbHBlci5hcHAvQ29udGVudHMvUmVzb3VyY2VzIgpNQU5BR0VNRU5UX0FDVElPTj0iL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9KQU1GL2Jpbi9NYW5hZ2VtZW50IEFjdGlvbi5hcHAvQ29udGVudHMvTWFjT1MvTWFuYWdlbWVudCBBY3Rpb24iCkpBTUZfQ0FDSEU9Ii9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnQvSkFNRi9XYWl0aW5nIFJvb20iCmN1cnJlbnR1c2VyPSQobHMgLWwgL2Rldi9jb25zb2xlIHwgY3V0IC1kICIgIiAtZiA0KQppZGVudGlmaWVyPSJjb20ubXljb21wYW55IiAjIERvIG5vdCBlZGl0LiBXaWxsIGJlIG1vZGlmaWVkIGJ5IHRoZSBjb250YWluZXIgc2NyaXB0Lgpza2lwcGluZ19jb3VudGVyX2Rpcj0iL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9TY3JpcHRzL21hZ2ljX2luc3RhbGxlciIgIyBEbyBub3QgZWRpdC4gV2lsbCBiZSBtb2RpZmllZCBieSB0aGUgY29udGFpbmVyIHNjcmlwdC4KW1sgLWQgIiR7c2tpcHBpbmdfY291bnRlcl9kaXJ9IiBdXSB8fCBta2RpciAtcCAiJHtza2lwcGluZ19jb3VudGVyX2Rpcn0iCndhaXRpbmdfZHVyYXRpb249KCA4NjQwMCAxNDQwMCA3MjAwIDE4MDAgMzAwICkgIyAwIHdpbGwgZGVhY3RpdmF0ZSB0aGUgY291bnRkb3duCm5vdz0iJChkYXRlICslcykiCgpkaXNwbGF5VXNlck1lc3NhZ2UgKCkgewoJTVlfTUVTU0FHRT0iJHsxfSIKCVtbIC16ICIkezJ9IiBdXSAmJiB0aW1lb3V0PSI3MjAwIiB8fCB0aW1lb3V0PSIkezJ9IgoJW1sgLXogIiR7M30iIF1dICYmIGNhbmNlbD0iZmFsc2UiIHx8IGNhbmNlbD0iJHszfSIKCWlmCiAgICAgICAgW1sgLW4gIiR7Y3VzdG9taWNvbn0iIF1dICYmCiAgICAgICAgW1sgLWYgIiR7Y3VzdG9taWNvbn0iIF1dOwogICAgICAgIHRoZW4KCQlpY29uPSIke2N1c3RvbWljb259IgoJZWxpZgogICAgICAgIFtbIC1mICIvU3lzdGVtL0xpYnJhcnkvQ29yZVNlcnZpY2VzL1NvZnR3YXJlIFVwZGF0ZS5hcHAvQ29udGVudHMvUmVzb3VyY2VzL1NvZnR3YXJlVXBkYXRlLmljbnMiIF1dOwogICAgICAgIHRoZW4KCQlpY29uPSIvU3lzdGVtL0xpYnJhcnkvQ29yZVNlcnZpY2VzL1NvZnR3YXJlIFVwZGF0ZS5hcHAvQ29udGVudHMvUmVzb3VyY2VzL1NvZnR3YXJlVXBkYXRlLmljbnMiCgllbGlmCiAgICAgICAgW1sgLWYgIi9TeXN0ZW0vTGlicmFyeS9Db3JlU2VydmljZXMvSW5zdGFsbCBDb21tYW5kIExpbmUgRGV2ZWxvcGVyIFRvb2xzLmFwcC9Db250ZW50cy9SZXNvdXJjZXMvU29mdHdhcmVVcGRhdGUuaWNucyIgXV07CiAgICAgICAgdGhlbgoJCWljb249Ii9TeXN0ZW0vTGlicmFyeS9Db3JlU2VydmljZXMvSW5zdGFsbCBDb21tYW5kIExpbmUgRGV2ZWxvcGVyIFRvb2xzLmFwcC9Db250ZW50cy9SZXNvdXJjZXMvU29mdHdhcmVVcGRhdGUuaWNucyIKCWVsc2UKCQlpY29uPSIke0pBTUZfSUNPTlN9L01lc3NhZ2UucG5nIgoJZmkKCWlmIFtbICIke2NhbmNlbH0iID0gImZhbHNlIiBdXTsgdGhlbgoJCSIke0pBTUZfSEVMUEVSfSIgXAoJCQktd2luZG93VHlwZSB1dGlsaXR5IFwKCQkJLXRpdGxlICJTeXN0ZW11cGRhdGVzIHZlcmbDvGdiYXIiIFwKCQkJLWRlc2NyaXB0aW9uICIke01ZX01FU1NBR0V9IiBcCgkJCS1pY29uICIke2ljb259IiBcCgkJCS1idXR0b24xICJJbnN0YWxsaWVyZW4iIFwKCQkJLWRlZmF1bHRCdXR0b24gMSBcCgkJCS10aW1lb3V0ICR7dGltZW91dH0gXAoJCQktY291bnRkb3duCgllbHNlCgkJIiR7SkFNRl9IRUxQRVJ9IiBcCgkJCS13aW5kb3dUeXBlIHV0aWxpdHkgXAoJCQktdGl0bGUgIlN5c3RlbXVwZGF0ZXMgdmVyZsO8Z2JhciIgXAoJCQktZGVzY3JpcHRpb24gIiR7TVlfTUVTU0FHRX0iIFwKCQkJLWljb24gIiR7aWNvbn0iIFwKCQkJLWJ1dHRvbjEgIkluc3RhbGxpZXJlbiIgXAoJCQktYnV0dG9uMiAiU3DDpHRlciIgXAoJCQktZGVmYXVsdEJ1dHRvbiAxIFwKCQkJLWNhbmNlbEJ1dHRvbiAyIFwKCQkJLXRpbWVvdXQgJHt0aW1lb3V0fSBcCgkJCS1jb3VudGRvd24KCSBmaQoKfQoKY29tcGFyZVZlcnNpb24gKCl7CiAgICAvdXNyL2Jpbi9weXRob24gLSAiJDEiICIkMiIgPDwgRU9GCmltcG9ydCBzeXMKZnJvbSBkaXN0dXRpbHMudmVyc2lvbiBpbXBvcnQgTG9vc2VWZXJzaW9uIGFzIExWCnByaW50IExWKHN5cy5hcmd2WzFdKSA+PSBMVihzeXMuYXJndlsyXSkKRU9GCn0KCmlmIFsgLW4gIiR7NH0iIF07IHRoZW4KCWFwcG5hbWU9IiR7NH0iCmVsc2UKCWVjaG8gIkVycm9yOiBQcm9jZXNzbmFtZSBub3Qgc2V0IChoaW50OiBhcmd1bWVudCAjNCkiIDE+JjIKICAgIGVjaG8gIlByb2Nlc3NuYW1lICh1c2UgOyBhcyBkZWxpbWl0ZXIpIgoJZXhpdCA0CmZpCgppZiBbIC1uICIkezV9IiBdOyB0aGVuCglhcHBWZXJzaW9uPSIkezV9IgplbHNlCglhcHBWZXJzaW9uPSIiCmZpCgppZiBbIC1uICIkezZ9IiBdOyB0aGVuCglkaXNwbGF5bmFtZT0iJHs2fSIKZWxzZQoJZWNobyAiSW5mbzogRGlzcGxheW5hbWUgbm90IHNldCAoaGludDogYXJndW1lbnQgIzYpLiBVc2luZyBBcHBuYW1lIFwiJHthcHBuYW1lfVwiIGFuZCBhcHBWZXJzaW9uIFwiJHthcHBWZXJzaW9ufVwiIGFzIGRpc3BsYXluYW1lLiIKCWlmIFtbIC1uICIke2FwcFZlcnNpb259IiBdXTsgdGhlbgogICAgICAgIGRpc3BsYXluYW1lPSIke2FwcG5hbWV9ICR7YXBwVmVyc2lvbn0iCiAgICBlbHNlCgkgICAgZGlzcGxheW5hbWU9IiR7YXBwbmFtZX0iCiAgICBmaQogICAgZWNobyAiRGlzcGxheW5hbWU6IFwiJHtkaXNwbGF5bmFtZX1cIiIKZmkKCmlmIFsgLW4gIiR7N30iIF07IHRoZW4KCXBrZ3M9IiR7N30iCmVsc2UKCWVjaG8gIkVycm9yOiBQS0dzIHRvIGluc3RhbGwgbm90IHNldCAoaGludDogYXJndW1lbnQgIzcpIiAxPiYyCiAgICBlY2hvICJQS0dzIHRvIGluc3RhbGwgKHVzZSA7IGFzIGRlbGltaXRlcikiCglleGl0IDcKZmkKCnNraXBwaW5nX2NvdW50ZXI9IiR7c2tpcHBpbmdfY291bnRlcl9kaXJ9LyR7ZGlzcGxheW5hbWV9Igp0b3VjaCAiJHtza2lwcGluZ19jb3VudGVyfSIKCmlmIFsgLW4gIiR7OH0iIF07IHRoZW4KCWRlYWRsaW5lPSIkezh9IgplbHNlCglkZWFkbGluZT0iMCIKZmkKW1sgIiR7ZGVhZGxpbmV9IiA9PSAiMCIgXV0gJiYgZWNobyAiZGVhZGxpbmU6IG5vdCBzZXQiIHx8IGVjaG8gImRlYWRsaW5lOiAkKGRhdGUgLXIgJHtkZWFkbGluZX0gKyIlZC4lbS4lWSAlSDolTTolUyIpIgoKaWYgWyAtbiAiJHs5fSIgXTsgdGhlbgoJY3VzdG9taWNvbj0iJHs5fSIKZmkKCmlmIFsgLW4gIiR7MTB9IiBdOyB0aGVuCiAgICBpZiBbWyAteiAiJHsxMX0iIF1dOyB0aGVuCiAgICAgICAgcGxpc3RLZXk9IkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nIgogICAgZWxzZQogICAgICAgIHBsaXN0S2V5PSIkezExfSIKICAgIGZpCglhcHBWZXJzaW9uT2xkPSIkKGRlZmF1bHRzIHJlYWQgIiR7MTB9IiAiJHtwbGlzdEtleX0iIDI+L2Rldi9udWxsKSIKZmkKCmRlY2xhcmUgLWEgYXBwYXJyYXkKZGVjbGFyZSAtYSBwa2dhcnJheQphcHBsaW5lcz0kKGVjaG8gIiR7YXBwbmFtZX0ifHRyICI7IiAiXG4iKQp3aGlsZSByZWFkIC1yIGFwcDsgZG8KCWFwcGFycmF5Kz0oIiRhcHAiKQpkb25lIDw8PCIke2FwcGxpbmVzfSIKCnBrZ2xpbmVzPSQoZWNobyAiJHtwa2dzfSJ8dHIgIjsiICJcbiIpCndoaWxlIHJlYWQgLXIgcGtnOyBkbwoJcGtnYXJyYXkrPSgiJHBrZyIpCmRvbmUgPDw8IiR7cGtnbGluZXN9IgoKIyBTY3JpcHRMb2cgIktpbGxpbmcgb2xkIHByb2Nlc3Nlcy4iCiMgU2NyaXB0TG9nICJzZWxmcGlkOiAkJCIKb3RoZXJwaWRzPSQoIHBzIGF1eCB8IGdyZXAgIlttXWFnaWNfaW5zdGFsbGVyIiB8IGdyZXAgIiQoZWNobyAke2FwcG5hbWV9fHNlZCAncy87L1xcfC9nJykiIHwgYXdrICd7cHJpbnQgJDJ9JyB8IGdyZXAgLXYgIiQkIiApCiMgU2NyaXB0TG9nICJvdGhlcnBpZHM6ICRvdGhlcnBpZHMiCndoaWxlIHJlYWQgLXIgb3BpZDsgZG8KICAgIGtpbGwgJG9waWQgMj4vZGV2L251bGwKZG9uZSA8PDwiJHtvdGhlcnBpZHN9IgoKaW5zdGFsbHBrZ3MoKSB7CiAgICBTY3JpcHRMb2cgIlByZXBhcmluZyBJbnN0YWxsYXRpb24gb2YgJHtkaXNwbGF5bmFtZX0iCgogICAgZm9yIHBrZyBpbiAiJHtwa2dhcnJheVtAXX0iCiAgICBkbwogICAgICAgIGlmIFsgISAtZiAiJHtKQU1GX0NBQ0hFfS8ke3BrZ30iIF07IHRoZW4KICAgICAgICAgICAgU2NyaXB0TG9nICJGaWxlIFwiJHtKQU1GX0NBQ0hFfS8ke3BrZ31cIiBkb2Vzbid0IGV4aXN0LiIKICAgICAgICAgICAgcmVtb3ZlTGF1bmNoRGFlbW9uCiAgICAgICAgICAgIGV4aXQgMQogICAgICAgIGZpCiAgICBkb25lCgogICAgaWYgW1sgIiR7bG9nZ2VkSW5Vc2VyfSIgPSAicm9vdCIgXV07IHRoZW4KICAgICAgICBlY2hvICJObyBVc2VyIGxvZ2dlZCBpbi4gU2tpcHBpbmcgbm90aWZpY2F0aW9uLiIKICAgIGVsc2UKICAgICAgICBTY3JpcHRMb2cgIk1hbmFnZW1lbnQgQWN0aW9uOiBTdGFydGUgSW5zdGFsbGF0aW9uIHZvbiAke2Rpc3BsYXluYW1lfS4iCiAgICAgICAgIiR7TUFOQUdFTUVOVF9BQ1RJT059IiAtdGl0bGUgIkluc3RhbGxhdGlvbnN0YXR1cyIgLW1lc3NhZ2UgIlN0YXJ0ZSBJbnN0YWxsYXRpb24gdm9uICR7ZGlzcGxheW5hbWV9LiIgJgogICAgZmkKCiAgICBmb3IgcGtnIGluICIke3BrZ2FycmF5W0BdfSIKICAgIGRvCiAgICAgICAgU2NyaXB0TG9nICJJbnN0YWxsaW5nIFwiJHtKQU1GX0NBQ0hFfS8ke3BrZ31cIiIKICAgICAgICAiJHtKQU1GfSIgaW5zdGFsbCAtcGFja2FnZSAiJHtwa2d9IiAtcGF0aCAiJHtKQU1GX0NBQ0hFfSIgLXRhcmdldCAvID4+ICIke2xvZ0ZpbGV9IiAyPiYxCiAgICAgICAgZXhpdGNvZGU9JD8KICAgICAgICBTY3JpcHRMb2cgIkluc3RhbGxlciBkb25lIHdpdGggZXhpdGNvZGUgJGV4aXRjb2RlIgogICAgICAgIFtbICIkeyNwa2dhcnJheVtAXX0iIC1ndCAxIF1dICYmIC9iaW4vc2xlZXAgMgogICAgZG9uZQogICAgZWNobyAtbiAiIiA+ICIke3NraXBwaW5nX2NvdW50ZXJ9IgoKICAgIGlmIFtbICIke2xvZ2dlZEluVXNlcn0iID0gInJvb3QiIF1dOyB0aGVuCiAgICAgICAgZWNobyAiTm8gVXNlciBsb2dnZWQgaW4uIFNraXBwaW5nIG5vdGlmaWNhdGlvbi4iCiAgICBlbHNlCiAgICAgICAgU2NyaXB0TG9nICJNYW5hZ2VtZW50IEFjdGlvbjogSW5zdGFsbGF0aW9uIHZvbiAke2Rpc3BsYXluYW1lfSBlcmZvbGdyZWljaC4iCiAgICAgICAgIiR7TUFOQUdFTUVOVF9BQ1RJT059IiAtdGl0bGUgIkluc3RhbGxhdGlvbnN0YXR1cyIgLW1lc3NhZ2UgIkluc3RhbGxhdGlvbiB2b24gJHtkaXNwbGF5bmFtZX0gZXJmb2xncmVpY2guIiAmCiAgICBmaQoKICAgIFNjcmlwdExvZyAiRmVydGlnLiIKfQoKCmlmCiAgICBbWyAtbiAiJHthcHBWZXJzaW9uT2xkfSIgXV0gJiYKICAgIFtbIC1uICIke2FwcFZlcnNpb259IiBdXSAmJgogICAgJChjb21wYXJlVmVyc2lvbiAiJHthcHBWZXJzaW9uT2xkfSIgIiR7YXBwVmVyc2lvbn0iKTsKICAgIHRoZW4KICAgICAgICBTY3JpcHRMb2cgIlNhbWUgb3IgbmV3ZXIgVmVyc2lvbiBhbHJlYWR5IGluc3RhbGxlZCIKICAgICAgICBlY2hvICJTYW1lIG9yIG5ld2VyIFZlcnNpb24gYWxyZWFkeSBpbnN0YWxsZWQiCiAgICAgICAgcmVtb3ZlTGF1bmNoRGFlbW9uCiAgICAgICAgZXhpdCAxMApmaQoKZm9yIGFwcCBpbiAiJHthcHBhcnJheVtAXX0iOyBkbwogICAgd2F0Y2hlZFBJRCs9KCAkKHBncmVwIC1pICIke2FwcH0iIHwgZ3JlcCAtdiAiZ3JlcCIgfCBncmVwIC12ICJtYWdpY19pbnN0YWxsZXIiKSApCmRvbmUKZWNobyAid2F0Y2hlZFBJRDogJHt3YXRjaGVkUElEWypdfSIKaWYgW1sgIiR7d2F0Y2hlZFBJRFsqXS8jIC99IiA9PSAiIiBdXTsgdGhlbgogICAgU2NyaXB0TG9nICJTdGFydGluZyBpbnN0YWxsYXRpb24uIgogICAgaW5zdGFsbHBrZ3MKICAgIHJlbW92ZUxhdW5jaERhZW1vbgplbHNlCiAgICBpZiBbWyAiJHtkZWFkbGluZX0iIC1ndCAwIF1dOyB0aGVuCiAgICAgICAgIyBTY3JpcHRMb2cgImZvcmNlZCBpbnN0YWxsYXRpb24gd2lsbCBiZSBhY3RpdmF0ZWQuIgogICAgICAgIGVjaG8gImZvcmNlZCBpbnN0YWxsYXRpb24gd2lsbCBiZSBhY3RpdmF0ZWQuIgogICAgICAgIG5vcmVydW5iZWZvcmU9IiQodGFpbCAtbiAxICIke3NraXBwaW5nX2NvdW50ZXJ9IikiCiAgICAgICAgbG9nUmVwZWF0PSQoZ3JlcCAiJHtkaXNwbGF5bmFtZX0iICIke2xvZ0ZpbGV9IiAyPi9kZXYvbnVsbCB8IHRhaWwgLW4gMSB8IGdyZXAgLWMgIm5vcmVydW5iZWZvcmUiKQogICAgICAgIFtbIC16ICIke25vcmVydW5iZWZvcmV9IiBdXSAmJiBub3JlcnVuYmVmb3JlPTAKICAgICAgICBbWyAiJHtsb2dSZXBlYXR9IiAtZXEgMCBdXSAmJiBTY3JpcHRMb2cgIm5vcmVydW5iZWZvcmU6ICQoZGF0ZSAtciAke25vcmVydW5iZWZvcmV9ICsiJWQuJW0uJVkgJUg6JU06JVMiKSIKICAgICAgICAjIFNjcmlwdExvZyAibm93OiAgICAgICAgICAgJChkYXRlIC1yICR7bm93fSArIiVkLiVtLiVZICVIOiVNOiVTIikiCiAgICAgICAgZWNobyAibm93OiAgICAgICAgICAgJChkYXRlIC1yICR7bm93fSArIiVkLiVtLiVZICVIOiVNOiVTIikiCiAgICAgICAgaWYKICAgICAgICAgICAgW1sgIiR7bm9yZXJ1bmJlZm9yZX0iIC1sZSAiJHtub3d9IiBdXTsKICAgICAgICAgICAgdGhlbgogICAgICAgICAgICAgICAgc2tpcHBpbmdfY291bnRlcl9pbnQ9IiQod2MgLWwgIiR7c2tpcHBpbmdfY291bnRlcn0iIHwgYXdrICd7cHJpbnQgJDErMX0nKSIKICAgICAgICAgICAgICAgIFNjcmlwdExvZyAiI3dhaXRpbmdfZHVyYXRpb25bQF06ICR7I3dhaXRpbmdfZHVyYXRpb25bQF19IgogICAgICAgICAgICAgICAgU2NyaXB0TG9nICJza2lwcGluZ19jb3VudGVyX2ludDogJHNraXBwaW5nX2NvdW50ZXJfaW50IgoKICAgICAgICAgICAgICAgIGlmCiAgICAgICAgICAgICAgICAgICAgW1sgIiR7I3dhaXRpbmdfZHVyYXRpb25bQF19IiAtZ3QgIiR7c2tpcHBpbmdfY291bnRlcl9pbnR9IiBdXSAmJgogICAgICAgICAgICAgICAgICAgICgKICAgICAgICAgICAgICAgICAgICAgICAgW1sgIiR7ZGVhZGxpbmV9IiAtZXEgMCBdXSB8fAogICAgICAgICAgICAgICAgICAgICAgICBbWyAiJHtkZWFkbGluZX0iIC1nZSAiJHtub3d9IiBdXQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PSIke3dhaXRpbmdfZHVyYXRpb25bJHNraXBwaW5nX2NvdW50ZXJfaW50LTFdfSIKICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsPSJ0cnVlIgogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PSIke3dhaXRpbmdfZHVyYXRpb25bJHsjd2FpdGluZ19kdXJhdGlvbltAXX0tMV19IiAjIGxhc3QgYXJyYXkgaXRlbQogICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWw9ImZhbHNlIgogICAgICAgICAgICAgICAgZmkKICAgICAgICAgICAgICAgIFNjcmlwdExvZyAidGltZW91dDogJHRpbWVvdXQiCiAgICAgICAgICAgICAgICBTY3JpcHRMb2cgImNhbmNlbDogJGNhbmNlbCIKCiAgICAgICAgICAgICAgICBTY3JpcHRMb2cgIkFwcGxpY2F0aW9uIFwiJHthcHBuYW1lfVwiIGlzIHJ1bm5pbmcuLi4iCiAgICAgICAgICAgICAgICBTY3JpcHRMb2cgIkRpc3BsYXkgbWVzc2FnZSBmb3IgdXNlciBcIiR7Y3VycmVudHVzZXJ9XCIiCiAgICAgICAgICAgICAgICBkaXNwbGF5VXNlck1lc3NhZ2UgIkJpdHRlIGJlZW5kZW4gU2llICR7ZGlzcGxheW5hbWV9LCB1bSBTb2Z0d2FyZWFrdHVhbGlzaWVydW5nZW4gZHVyY2h6dWbDvGhyZW4uIiAiJHt0aW1lb3V0fSIgIiR7Y2FuY2VsfSIgPiAvZGV2L251bGwKICAgICAgICAgICAgICAgIGVycm9yY29kZT0iJD8iCiAgICAgICAgICAgICAgICBpZiBbWyAiJHtlcnJvcmNvZGV9IiAtZXEgMCBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGZvciBhcHAgaW4gIiR7YXBwYXJyYXlbQF19IjsgZG8KICAgICAgICAgICAgICAgICAgICAgICAgU2NyaXB0TG9nICJRdWl0aW5nIFwiJGFwcFwiIHdpdGggQXBwbGVTY3JpcHQiCiAgICAgICAgICAgICAgICAgICAgICAgIG9zYXNjcmlwdCAtZSAidGVsbCBhcHBsaWNhdGlvbiBcIiR7YXBwfVwiIHRvIHF1aXQiCiAgICAgICAgICAgICAgICAgICAgZG9uZQogICAgICAgICAgICAgICAgICAgIC9iaW4vc2xlZXAgMgoKICAgICAgICAgICAgICAgICAgICBwcyAke3dhdGNoZWRQSURbKl19ID4vZGV2L251bGwgMj4mMQogICAgICAgICAgICAgICAgICAgIHBzZXJyb3I9JD8KICAgICAgICAgICAgICAgICAgICBpZiBbWyAiJHtwc2Vycm9yfSIgLWVxIDAgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgU2NyaXB0TG9nICJLaWxsaW5nIFwiJHtkaXNwbGF5bmFtZX1cIiAoJHt3YXRjaGVkUElEWypdfSkiCiAgICAgICAgICAgICAgICAgICAgICAgIGtpbGwgLTkgJHt3YXRjaGVkUElEWypdfSAyPi9kZXYvbnVsbAogICAgICAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgZWNobyAiJCgoIG5vdyArIHRpbWVvdXQgKSkiID4+ICIke3NraXBwaW5nX2NvdW50ZXJ9IgogICAgICAgICAgICAgICAgICAgIFNjcmlwdExvZyAiTWFudWFsIHNraXBwZWQuIgogICAgICAgICAgICAgICAgICAgIG5vdzI9IiQoZGF0ZSArJXMpIgogICAgICAgICAgICAgICAgICAgIHRpbWVvdXQyPSQoKCB0aW1lb3V0IC0gKCBub3cyIC0gbm93ICkgKSkKICAgICAgICAgICAgICAgIGZpCiAgICAgICAgZWxzZQogICAgICAgICAgICBub3cyPSIkKGRhdGUgKyVzKSIKICAgICAgICAgICAgdGltZW91dDI9JCgoIG5vcmVydW5iZWZvcmUgLSBub3cyICkpCiAgICAgICAgICAgIGVjaG8gIk5leHQgcnVuOiAgICAgICQoZGF0ZSAtciAke25vcmVydW5iZWZvcmV9ICsiJWQuJW0uJVkgJUg6JU06JVMiKSIKICAgICAgICAgICAgIyBTY3JpcHRMb2cgIlNraXBwaW5nLiBOZXh0IHJ1biBhdCAkKGRhdGUgLXIgJHtub3JlcnVuYmVmb3JlfSArIiVkLiVtLiVZICVIOiVNOiVTIikiCiAgICAgICAgZmkKICAgIGVsc2UKICAgICAgICBsb2dnZWRJblVzZXI9JCgvYmluL2xzIC1sIC9kZXYvY29uc29sZSB8IC91c3IvYmluL2F3ayAneyBwcmludCAkMyB9JykKICAgICAgICBsb2dSZXBlYXQ9JChncmVwICIke2Rpc3BsYXluYW1lfSIgIiR7bG9nRmlsZX0iIDI+L2Rldi9udWxsIHwgdGFpbCAtbiAxIHwgZ3JlcCAtYyAiaXMgbG9nZ2VkIGluIGFuZCBhcHAgaXMgcnVubmluZyIpCiAgICAgICAgW1sgIiR7bG9nUmVwZWF0fSIgLWVxIDAgXV0gJiYgU2NyaXB0TG9nICJVc2VyIFwiJHtsb2dnZWRJblVzZXJ9XCIgaXMgbG9nZ2VkIGluIGFuZCBhcHAgaXMgcnVubmluZy4gRXhpdGluZy4iCiAgICBmaQoKZmkKCmV4aXQgMA==
" | base64 -D -o "${path}/magic_installer.sh"
sed -i '' "s#identifier=\"com\.mycompany\"#identifier=\"${identifier}\"#g" "${path}/magic_installer.sh"
sed -i '' "s#skipping_counter_dir=\"/Library/Application Support/Scripts/magic_installer\"#skipping_counter_dir=\"${skipping_counter_dir}\"#g" "${path}/magic_installer.sh"
appname="${4}"
chown -R root:admin "${path}/magic_installer.sh"
chmod +x "${path}/magic_installer.sh"
launchctl list ${identifier}.magic_installer_${appname} > /dev/null 2>&1
launchctlError=$?
if [[ "${launchctlError}" -eq 0 ]]; then
rm -f "/Library/LaunchDaemons/${identifier}.magic_installer_${appname}.plist"
launchctl remove ${identifier}.magic_installer_${appname}
fi
cat <<EOF > "/Library/LaunchDaemons/${identifier}.magic_installer_${appname}.plist"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>${identifier}.magic_installer_${appname}</string>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>${path}/magic_installer.sh</string>
<string>${1}</string>
<string>${2}</string>
<string>${3}</string>
<string>${4}</string>
<string>${5}</string>
<string>${6}</string>
<string>${7}</string>
<string>${8}</string>
<string>${9}</string>
<string>${10}</string>
<string>${11}</string>
</array>
<key>StartInterval</key>
<integer>10</integer>
</dict>
</plist>
EOF
chown -R root:admin "/Library/LaunchDaemons/${identifier}.magic_installer_${appname}.plist"
chmod +x "/Library/LaunchDaemons/${identifier}.magic_installer_${appname}.plist"
launchctl load -w "/Library/LaunchDaemons/${identifier}.magic_installer_${appname}.plist"