binhonglee/GlobeTrotte

View on GitHub
build_defs/gen/gen.build_defs

Summary

Maintainability
Test Coverage
def _go_to_top_level():
  return "cd " + _top_level_dir() + " || exit 1"

def _top_level_dir():
  return "$(pwd | awk -F'plz-out' '{print $1}')"

def _check_port_running(port:int, server_cmd:str=None):
  return " ".join([
    "if [ ! \\\$(lsof -i:" + str(port) + " | grep -v \"CLOSE_WAIT\") ];",
    "then echo \"Please make sure server is started at " + str(port) + "\" && exit 1;" if server_cmd is None else "then " + server_cmd + ";",
    "fi",
  ])

def _assert_boolean(string:str, default:bool = None):
  switcher = {
    "True": True,
    "False": False,
    "true": True,
    "false": False,
    "Yes": True,
    "No": False,
    "yes": True,
    "no": False,
  }
  result = switcher.get(string, "ERR")
  if result == "ERR":
    if default is None:
      fail()
    else:
      return default
  else:
    return result

def _home_path():
  return " ".join([
    "if [[ \"$OSTYPE\" == \"darwin\"* ]];",
    "then HOME=\"/Users/$USER\";",
    "elif [[ \"$OSTYPE\" == \"linux-gnu\"* ]];",
    "then HOME=\"/home/$USER\";",
    "fi",
  ])

def _for_loop(looped: str, cmd: str):
  return "; ".join([
    "for ITEM in " + looped,
    "do " + cmd,
    "done",
  ])