2015-04-22 8 views
0

J'utilise sbt-native-packager pour construire un RPM. J'ai des scripts personnalisés pour preInstall et postInstall comme décrit here. Y at-il un moyen de passer des paramètres à ces scripts de sbt?Comment passer des paramètres à des scripts surchargés avec sbt-native-packager?

Merci

@mgosk merci pour l'idée. J'ajoute un commentaire ici pour pouvoir le formater.

Je n'arrive pas à le faire fonctionner. Ceci est dans mon fichier SBT:

val appName = "myApp" + packageSuffix 
bashScriptExtraDefines += s"appName=$appName" 

Ceci est mon scriptlet:

${{template_declares}} 
#start (or restart) the service 
/etc/init.d/$appName restart 

C'est ce que get généré dans les spécifications rpm:

${{template_declares}} 
#start (or restart) the service 
/etc/init.d/$appName restart 

C'est exactement la même chose. Pas de substitution. Est-ce que je manque quelque chose?

+1

Qui 'sbt'? À partir de la machine sur laquelle vous créez un package ou une machine cible sur laquelle vous exécutez l'application? – mgosk

+0

De la machine où je crée le paquet. J'ai quelques valeurs calculées par le code scala que j'ai besoin d'insérer dans ces scripts. – sebi

Répondre

1

Vous devez d'abord définir la variable supplémentaire dans build.sbt:

bashScriptExtraDefines += s"""FOO=${sbtVariableHere}"""

ligne suivante ajouter ${{template_declares}} à votre script shell. L'analyseur de modèles Native-Packager insère ici bashScriptDefines et bashScriptExtraDefines que vous définissez précédemment.

Il vous en avez plus d'info:

http://www.scala-sbt.org/sbt-native-packager/archetypes/cheatsheet.html#bash-script-src-templates-bash-template

http://www.scala-sbt.org/sbt-native-packager/archetypes/java_app/customize.html#more-complex-scripts