Da ich von GUI-Schnittstellen komme, verstehe ich nun endlich, wie leistungsstark es ist, alles als Text weiterzuleiten, aber ich weiß noch nicht wirklich, wie ich diese ganze Leistung nutzen soll.
Mir ist aufgefallen, dass der Arbeitsablauf für ein bestimmtes Projekt folgendermaßen aussieht …
# compile repo 1
cd ~/workspace/repo1
make -B
# deploys compiled code into repo2
make deploy
# commit repo 1
cd ~/workspace/repo1
git add .
git commit -m "changes"
git push origin master
# commit repo 2
cd ~/workspace/repo2
git add .
git commit -m "changes"
git push origin master
Meine Frage ist nicht so sehr, wie ich das erreichen kann, sondern welches das richtige Werkzeug dafür ist. Wenn ich mich umlese, scheint es, als würde ich ein Bash-Skript brauchen, aber ich würde gerne die Experten zu Rate ziehen.
Antwort1
Sie haben einen sehr guten Start, indem Sie alles an einem Ort eingeben.
Kopieren Sie das alles in eine Textdatei (z. B. workflow.sh
, aber der Name ist nicht wirklich wichtig) und fügen Sie dann Folgendes einin der allerersten Zeile der Datei:
#!/bin/sh
Sie haben jetzt ein Shell-Skript. Machen Sie es ausführbar:
chmod +x workflow.sh
Jetzt können Sie es wie einen Befehl ausführen:
./workflow.sh
Durch bloßes Aufrufen des Workflows werden alle diese Befehle der Reihe nach ausgeführt.
Sie sind jetzt ein Systemprogrammierer-Anfänger. Von da an kann es nur noch nach oben gehen.
Aktualisieren
KonkretisierenÄnderungenohne das Skript jedes Mal bearbeiten zu müssen, wenn Sie Folgendes ändern:
git commit -m "changes"
Lesen:
git commit -m "$1"
Sie können dann weitergebenÄnderungenals Befehlszeilenargument:
./workflow "Describe changes made"
Weitere nützliche Tools sind Aliase und PATH
. Sie können ein spezielles Verzeichnis (zum Beispiel ~/bin
) erstellen und alle Skripte dort ablegen, dieses Verzeichnis zu Ihrer PATH
Variable hinzufügen und müssen nicht jedes Mal den vollständigen Pfad zum Skript eingeben, wenn Sie es starten möchten. Bei Aliasen müssen Sie für jedes Skript einen Alias erstellen, manchmal ist ein Alias jedoch bequemer, da Sie darin verschiedene Ausführungsparameter angeben können.
Antwort2
Sie können Ihren Code mit Python-Dienstprogrammen organisieren:https://wiki.python.org/moin/FlowBasedProgramming
Ein weiteres oben nicht erwähntes, aber dennoch vielversprechendes Paket ist Snakemake.