2017-03-21 3 views
0

J'ai besoin d'installer 2 plugins audio dans les répertoires des composants Audio/Plug-Ins/VST &. Mon installateur fait très bien. Mais j'ai aussi besoin d'installer un répertoire de fichiers prédéfinis dans le dossier/Users/$ USER/Library/Application Support/MyCompany.osx: Comment installer un paquet dans le répertoire de support d'application de l'utilisateur?

J'ai entendu dire qu'un programme d'installation ne peut pas être installé sur/et ~ dans le même programme d'installation, mais je veux vraiment qu'il soit installé pour l'utilisateur. Il semble donc qu'une bonne idée serait d'installer le VST et les composants en premier. Ensuite, installez le dossier prédéfini dans un emplacement temporaire (comme/tmp ou similaire), puis exécutez un script de post-installation pour déplacer les fichiers vers la bibliothèque de l'utilisateur ... mais je ne peux pas obtenir que cela fonctionne.

C'est le script que je suis en train de courir:

#!/bin/bash 

# movePresets.sh 

# I want something like this...but it doesn't work because $USER is root in the installer I believe 

/usr/bin/sudo -u $USER mkdir -p "/Users/$USER/Library/Application Support/MyCompany/Presets" 
/usr/bin/sudo -u $USER mv -r "/tmp/Presets" "$USER/$USER/Library/Application Support/MyCompany" 


exit 0 

De toute évidence, je ne sais pas la bonne façon d'accéder au répertoire d'un utilisateur en tant que root. Aide s'il vous plaît ... merci.

+0

Vous devez créer un package d'installation pour cela (par exemple, '.pkg',' .mpkg') en utilisant 'productbuild'; il fait tout ce que vous avez mentionné. –

+0

Où le fichier post-install.sh va être? Vous pouvez ajouter ce fichier à un emplacement à l'intérieur de la maison de l'utilisateur, puis récupérer le chemin d'accès de l'utilisateur avec son emplacement. Vous pouvez simplement exiger que le fichier de post-installation soit exécuté à partir du répertoire personnel de l'utilisateur (qui est le répertoire par défaut du terminal lorsque vous le lancez). – vitormm

Répondre

0

Avez-vous essayé d'enregistrer l'utilisateur dans une variable en premier?

#!/bin/bash 
realuser=$USER 
# or 
#realuser=$(whoami) 

/usr/bin/sudo -u $realuser mkdir -p "/Users/$realuser/Library/Application Support/MyCompany/Presets" 
/usr/bin/sudo -u $realuser mv -r "/tmp/Presets" "$realuser/$realuser/Library/Application Support/MyCompany" 
+0

Comment est-ce différent? $ USER est toujours root, pas le vrai utilisateur. – pizzafilms