mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-02-22 07:44:03 -04:00
Tools: generate_manifest: correct detection of linux filetypes
This commit is contained in:
parent
61e261caf5
commit
3c6b08e67f
@ -8,6 +8,7 @@ import os
|
|||||||
import re
|
import re
|
||||||
import fnmatch
|
import fnmatch
|
||||||
import gen_stable
|
import gen_stable
|
||||||
|
import subprocess
|
||||||
|
|
||||||
FIRMWARE_TYPES = ["AntennaTracker", "Copter", "Plane", "Rover", "Sub"]
|
FIRMWARE_TYPES = ["AntennaTracker", "Copter", "Plane", "Rover", "Sub"]
|
||||||
RELEASE_TYPES = ["beta", "latest", "stable", "stable-*", "dirty"]
|
RELEASE_TYPES = ["beta", "latest", "stable", "stable-*", "dirty"]
|
||||||
@ -230,6 +231,18 @@ class ManifestGenerator():
|
|||||||
self.add_USB_IDs_ChibiOS(firmware)
|
self.add_USB_IDs_ChibiOS(firmware)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def firmware_format_for_filepath(self, filepath):
|
||||||
|
filename = os.path.basename(filepath)
|
||||||
|
if "." in filename:
|
||||||
|
return "".join(filename.split(".")[-1:])
|
||||||
|
# no extension; ensure this is an elf:
|
||||||
|
text = subprocess.check_output(["file", "-b", filepath])
|
||||||
|
if re.match("^ELF", text):
|
||||||
|
return "ELF"
|
||||||
|
print("Unknown file type (%s)" % filepath)
|
||||||
|
print("Got: %s" % text)
|
||||||
|
return "Unknown" # should raise an error somehow
|
||||||
|
|
||||||
def add_firmware_data_from_dir(self,
|
def add_firmware_data_from_dir(self,
|
||||||
dir,
|
dir,
|
||||||
firmware_data,
|
firmware_data,
|
||||||
@ -293,13 +306,13 @@ class ManifestGenerator():
|
|||||||
frame = vehicletype # e.g. Plane
|
frame = vehicletype # e.g. Plane
|
||||||
platform = platformdir # e.g. apm2
|
platform = platformdir # e.g. apm2
|
||||||
|
|
||||||
for file in os.listdir(some_dir):
|
for filename in os.listdir(some_dir):
|
||||||
if file in ["git-version.txt", "firmware-version.txt", "files.html"]:
|
if filename in ["git-version.txt", "firmware-version.txt", "files.html"]:
|
||||||
continue
|
continue
|
||||||
if file.startswith("."):
|
if filename.startswith("."):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
m = variant_firmware_regex.match(file)
|
m = variant_firmware_regex.match(filename)
|
||||||
if m:
|
if m:
|
||||||
# the platform variant is
|
# the platform variant is
|
||||||
# encoded in the firmware filename
|
# encoded in the firmware filename
|
||||||
@ -310,7 +323,10 @@ class ManifestGenerator():
|
|||||||
else:
|
else:
|
||||||
file_platform = platform
|
file_platform = platform
|
||||||
|
|
||||||
firmware_format = "".join(file.split(".")[-1:])
|
filepath = os.path.join(some_dir, filename)
|
||||||
|
firmware_format = self.firmware_format_for_filepath(filepath)
|
||||||
|
if firmware_format not in [ "ELF", "abin", "apj", "hex", "px4" ]:
|
||||||
|
print("Unknown firmware format (%s)" % firmware_format)
|
||||||
|
|
||||||
firmware = Firmware()
|
firmware = Firmware()
|
||||||
|
|
||||||
@ -320,17 +336,17 @@ class ManifestGenerator():
|
|||||||
firmware["latest"] = 0
|
firmware["latest"] = 0
|
||||||
if releasetype == "dev":
|
if releasetype == "dev":
|
||||||
if firmware["filepath"] is None:
|
if firmware["filepath"] is None:
|
||||||
firmware["filepath"] = os.path.join(some_dir, file)
|
firmware["filepath"] = filepath
|
||||||
if firmware["release-type"] is None:
|
if firmware["release-type"] is None:
|
||||||
firmware["release-type"] = "dev"
|
firmware["release-type"] = "dev"
|
||||||
elif releasetype == "latest":
|
elif releasetype == "latest":
|
||||||
firmware["latest"] = 1
|
firmware["latest"] = 1
|
||||||
firmware["filepath"] = os.path.join(some_dir, file)
|
firmware["filepath"] = filepath
|
||||||
if firmware["release-type"] is None:
|
if firmware["release-type"] is None:
|
||||||
firmware["release-type"] = "dev"
|
firmware["release-type"] = "dev"
|
||||||
else:
|
else:
|
||||||
if (not firmware["latest"]):
|
if (not firmware["latest"]):
|
||||||
firmware["filepath"] = os.path.join(some_dir, file)
|
firmware["filepath"] = filepath
|
||||||
firmware["release-type"] = releasetype
|
firmware["release-type"] = releasetype
|
||||||
|
|
||||||
firmware["platform"] = file_platform
|
firmware["platform"] = file_platform
|
||||||
|
Loading…
Reference in New Issue
Block a user