2013-03-31 8 views
1

J'ai un projet avec des dépendances complexes, et je voudrais faciliter le travail des autres développeurs. Je ai un Capfile, Gemfile, Guardfile, Procfile, et , donc j'ai pensé ... pourquoi pas un Brewfile pour gérer les dépendances au niveau du paquet pour les développeurs mac qui clone le projet?Injecter des formules locales dans le brassage

Mon espoir est de faire une formule locale qui est juste une liste de dépendances, quelque chose comme:

# Brewfile 
require 'formula' 

class DeveloperProject < Formula 
    depends_on 'mongodb' 
    depends_on 'postgresql' 
    depends_on 'solr' 
    depends_on 'phantomjs' 
end 

Les développeurs de vérifier la prise en pension pour la première fois pourrait tout brew install developer_project, et que les dépendances changent, ils pourrait brew update developer_project. Le problème est, mon brew-fu n'est pas assez bon pour comprendre comment obtenir le brew pour reconnaître cette formule sans créer un dépôt entier pour quelque part.

Au début, je pensais que je pouvais essayer de passer dans le chemin du fichier en quelque sorte:

brew install /Users/me/Projects/DeveloperProject/Brewfile 

Je pensais que je pourrais être en mesure de simuler un robinet sans hébergement nécessairement une prise en pension réelle, pour une bonne alternative-formule- gestion des sources:

mkdir -c /usr/local/Library/Taps/local-tap/Formula/ 
ln -s \ 
    /Users/me/Projects/DeveloperProject/Brewfile \ 
    /usr/local/Library/Taps/local-tap/Formula/developer_project.rb 
brew install developer_project 

Je pensais que je pouvais créer un lien symbolique dans mes formules, bien qu'il serait pour brew update fragile s:

ln -s \ 
    /Users/me/Projects/DeveloperProject/Brewfile \ 
    /usr/local/Library/Formula/developer_project.rb 
brew install developer_project 

Je n'arrivais pas à trouver un moyen de faire ces travaux, et chaque approche me semblait de plus en plus difficile. Existe-t-il un moyen de le faire avec de l'infusion sans bidouiller comme un dépôt? Sinon, existe-t-il un moyen de cocher correctement comme une source de formule distante? Ai-je manqué une manière déjà existante de faire un manifeste de brassage pour un projet?

+0

TLDR, existe-t-il un moyen de créer une formule de brassage locale qui peut être utilisée comme un manifeste de dépendance comme un 'Gemfile' pour des situations trop simples pour mériter un référentiel de formules complet quelque part? –

Répondre

0

On dirait que je ne suis pas le premier avec this idea! Brewdler ne supporte pas les robinets spécifiques ou quoi que ce soit, mais ça va marcher pour moi.

0

Vous pouvez installer une formule arbitraire en utilisant une URL, mais pas un nom de fichier. Donc, si vous tournez le chemin dans cette commande brew install /Users/me/... vers une URL file://, vous pouvez probablement le faire fonctionner simplement sans avoir à maintenir un repo ou appuyez sur ou quelque chose comme ça. Notez que pour le mettre à jour automatiquement, vous devez explicitement mettre un numéro de version dans votre formule et le remplacer chaque fois que vos dépendances changent.

+0

C'est une bonne idée! Je vais devoir jouer avec et voir si cela fonctionne. –