forked from Mirror/pmbootstrap
Optionally store git hash in /etc/os-release (!1784)
When git isn't installed then the version is not appended with the git hash of the pmaports repository.
This commit is contained in:
parent
e8cba8b20a
commit
0c001567b6
2 changed files with 12 additions and 3 deletions
|
@ -18,6 +18,7 @@ along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
|
|
||||||
import pmb.build
|
import pmb.build
|
||||||
import pmb.chroot.apk
|
import pmb.chroot.apk
|
||||||
|
@ -69,6 +70,11 @@ def clone(args, name_repo, shallow=True, chown_to_user=False):
|
||||||
|
|
||||||
|
|
||||||
def rev_parse(args, revision="HEAD"):
|
def rev_parse(args, revision="HEAD"):
|
||||||
|
if shutil.which("git") is None:
|
||||||
|
logging.warning("WARNING: Cannot determine revision of git " +
|
||||||
|
"repository at " + args.aports + ". Command 'git' " +
|
||||||
|
"not found.")
|
||||||
|
return ""
|
||||||
rev = pmb.helpers.run.user(args, ["git", "rev-parse", revision],
|
rev = pmb.helpers.run.user(args, ["git", "rev-parse", revision],
|
||||||
args.aports, output_return=True, check=False)
|
args.aports, output_return=True, check=False)
|
||||||
if rev is None:
|
if rev is None:
|
||||||
|
|
|
@ -25,18 +25,21 @@ import pmb.helpers.git
|
||||||
def write_os_release(args, suffix):
|
def write_os_release(args, suffix):
|
||||||
logging.info("(" + suffix + ") write /etc/os-release")
|
logging.info("(" + suffix + ") write /etc/os-release")
|
||||||
revision = pmb.helpers.git.rev_parse(args)
|
revision = pmb.helpers.git.rev_parse(args)
|
||||||
|
has_revision = revision != ""
|
||||||
filepath = args.work + "/chroot_" + suffix + "/tmp/os-release"
|
filepath = args.work + "/chroot_" + suffix + "/tmp/os-release"
|
||||||
os_release = ('PRETTY_NAME="postmarketOS {version}"\n'
|
os_release = ('PRETTY_NAME="postmarketOS {version}"\n'
|
||||||
'NAME="postmarketOS"\n'
|
'NAME="postmarketOS"\n'
|
||||||
'VERSION_ID="{version}"\n'
|
'VERSION_ID="{version}"\n'
|
||||||
'VERSION="{version}-{hash:.8}"\n'
|
'VERSION="{version}{sep}{hash:.8}"\n'
|
||||||
'ID="postmarketos"\n'
|
'ID="postmarketos"\n'
|
||||||
'ID_LIKE="alpine"\n'
|
'ID_LIKE="alpine"\n'
|
||||||
'HOME_URL="https://www.postmarketos.org/"\n'
|
'HOME_URL="https://www.postmarketos.org/"\n'
|
||||||
'SUPPORT_URL="https://gitlab.com/postmarketOS"\n'
|
'SUPPORT_URL="https://gitlab.com/postmarketOS"\n'
|
||||||
'BUG_REPORT_URL="https://gitlab.com/postmarketOS/pmbootstrap/issues"\n'
|
'BUG_REPORT_URL="https://gitlab.com/postmarketOS/pmbootstrap/issues"\n'
|
||||||
'PMOS_HASH="{hash}"\n'
|
).format(version=pmb.config.version,
|
||||||
).format(version=pmb.config.version, hash=revision)
|
sep=("-" if has_revision else ""), hash=revision)
|
||||||
|
if has_revision:
|
||||||
|
os_release += ('PMOS_HASH="{hash}"\n').format(hash=revision)
|
||||||
with open(filepath, "w") as handle:
|
with open(filepath, "w") as handle:
|
||||||
handle.write(os_release)
|
handle.write(os_release)
|
||||||
pmb.chroot.root(args, ["mv", "/tmp/os-release", "/etc/os-release"], suffix)
|
pmb.chroot.root(args, ["mv", "/tmp/os-release", "/etc/os-release"], suffix)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue