Verwenden eines Werts aus einer Datei und Aktualisieren mithilfe eines Linux-Skripts:

878
Emil Adz

Ich habe ein automatisches Build-Skript für meinen Build-Server, der Android-Anwendungen erstellt. Als Teil dieses Erstellungsprozesses muss ich nach dem Build zwei Parameter in einer der Android-Anwendungsdateien erhöhen und diese Datei in das Git-Repository festlegen.

Also muss ich folgendes Bash-Skript erstellen:

#!/bin/bash clear echo "Start of Pull command" git pull echo "End of Pull command" echo "Start of incrementedRelease build" gradle incrementedRelease echo "End of incrementedRelease build" echo "Start of Commit command" git commit -a -m "======================== Commit to change Manifest Version ======================" echo "End of Commit command" echo "Start of Push command" git push echo "End of Push command" 

Nun ist das Problem, dass anstatt mit dem Namen ein Commit erstellt wird:

Versprechen Sie, die Manifest-Version zu ändern

Ich möchte die aktuelle Anwendungsversion übergeben.

Da ich eine version.txtDatei erstellt habe, die die aktuelle Version enthält, die veröffentlicht wird, möchte ich im Zuge des Builds den Wert aus dieser Datei abrufen und als Teil des Festschreibungsnamens hinzufügen sowie diese Datei automatisch aktualisieren mit der nächsten Version für das nächste Commit.

1

1 Antwort auf die Frage

2
Fegnoid

In Ihre version.txt setzen Sie es als Shell-Variable wie APPVER="version"

Dann verwenden Sie in Ihrem Bash-Skript . /path/to/version.txt die Variable mit der Zeileexport APPVER

Diese Variable wird dann in Ihr Build-Skript importiert und dort, wo Sie den Namen benötigen, mit der Variablen $ APPVER verwendet

Commit to change Manifest $APPVER

Antwort auf Kommentar

MAJOR=`echo $APPVER| cut -c1-1` export MAJOR  MINOR=`echo $APPVER | cut -c3-5` export MINOR   NEWVER=$((MINOR + 1)) export NEWVER   echo APPVER=$MAJOR.$NEWVER > /path/to/version.txt 

BEARBEITEN: Ich habe vergessen, den Exportbefehl hinzuzufügen. BEARBEITEN: Hinzufügen einer Möglichkeit zum Inkrementieren ... und einige Fehler und Formatierungen wurden behoben

Also, ein paar Fragen: Wenn ich verstehe, dass die Datei verfügbar ist, muss ich sie mit einem (Punkt) (.) Zum Anfang des Skripts hinzufügen und gleich danach den Export APPVER im Scrpit hinzufügen. kann ich $ APPVER im Commit-Namen verwenden? Emil Adz vor 10 Jahren 0
Sagen wir, dass der Text in der Datei APPVER = "1.110" ist. Wie kann ich die Version um 1 auf "1.111" erhöhen? Emil Adz vor 10 Jahren 0
Nun, das funktioniert großartig, ich habe nur die Datei auf die neue Version aktualisiert. Können Sie mir sagen, wie ich den APPVER-Parameter in der version.txt-Datei aktualisieren kann? Emil Adz vor 10 Jahren 0
Das Problem ist, dass bash sich nicht mit Fließkommazahlen wie 1.110 befasst, sondern nur mit ganzen Zahlen umgehen kann. Ich habe an eine Idee gedacht, die die Aufgabe erfüllt, aber es würde Regeln dafür enthalten, wie Ihre Version gemacht wird. Ich werde sie meiner Antwort hinzufügen Fegnoid vor 10 Jahren 0
Was ist, wenn ich zwei Parameter in meiner Versionsdatei mache: MAJOR und MINOT und ich sie bei der Ausgabe wie $ MAJOR + "." + "MINOR" (wenn es sogar in Linux so geschrieben wurde) und nur die untergeordnete Version aktualisieren? Das wäre für mich ausreichend, kann das getan werden? Emil Adz vor 10 Jahren 0
Ja, siehe meine Antwort zur Antwort Fegnoid vor 10 Jahren 0
Danke für Ihre Hilfe, es gibt nur ein Problem. Wenn die Datei überschrieben wird, wird der neuen Version nur die Datei zugewiesen, und die Version wird nur ohne APPVER in Version geändert Emil Adz vor 10 Jahren 0
Ja, ich habe meinen Fehler gesehen und habe das richtige Echo in der Datei bearbeitet, sorry Fegnoid vor 10 Jahren 0
Ja, das jetzt gesehen. Lassen Sie mich das eine Sekunde lang überprüfen. Emil Adz vor 10 Jahren 0