pythonpython-2.7freebsd

How to check whether the system is FreeBSD in a python script?


I would like to add a check in a python 2.7.x script in the form of

if __check_freebsd__():
    # run actions which would only work on FreeBSD (e.g. create a jail)
elif __check_debian__():
    # run an alternative that runs on Debian-based systems
else:
    raise Error("unsupported OS")

How would the __check_freebsd__ function look like?

I have the following code for __check_debian__ already:

try:
    lsb_release_id_short = sp.check_output([lsb_release, "-d", "-s"]).strip().decode("utf-8")
    ret_value = "Debian" in lsb_release_id_short
    return ret_value
except Exception:
    return False

So you don't have to bother with it (suggestions for improvements are welcome, of course).


Solution

  • As stated in documentation,

    platform.system()
    

    returns the platform OS name, so you can use this. In this thread you can see also different approaches to check the underlying OS.