Esempio n. 1
0
 def _deploy_epics(self):
     run([
         "rsync",
         "-lr",
         os.path.join(self.output, "../epics-base"),
         "root@{}:/opt".format(self.device),
     ])
Esempio n. 2
0
 def deploy(self):
     self.build()
     if self.device is not None:
         devcmd = "cat > m4image.bin && mount /dev/mmcblk0p1 /mnt && mv m4image.bin /mnt && umount /mnt"
         hostcmd = "test -f {img} && cat {img} | ssh root@{} '{}'".format(
             self.device,
             devcmd,
             img=os.path.join(self.output, "release/m4image.bin"))
         run(["bash", "-c", hostcmd])
Esempio n. 3
0
    def load(self, dstdir):
        if os.path.exists(dstdir):
            return

        run(
            [
                "git",
                "clone",
                "https://github.com/varigit/freertos-variscite.git",
                "-b",
                "freertos_bsp_1.0.1_imx7d-var01",
                os.path.basename(dstdir),
            ],
            cwd=os.path.dirname(dstdir),
        )
Esempio n. 4
0
 def deploy(self):
     self.build()
     if self.device is not None:
         try:
             self._dev_run_cmd(["[[", "-d", "/opt/epics-base", "]]"])
         except SubprocError:
             self._deploy_epics()
         else:
             if self.args["update_epics"]:
                 self._deploy_epics()
         run([
             "rsync",
             "-lr",
             os.path.join(self.output, "release"),
             "root@{}:/opt/ioc".format(self.device),
         ])
         self._dev_run_cmd([
             "sed", "-i",
             "'s/^epicsEnvSet(\"TOP\",.*)$/epicsEnvSet(\"TOP\",\"\\/opt\\/ioc\\/release\")/'",
             "/opt/ioc/release/iocBoot/iocPSC/envPaths"
         ])
Esempio n. 5
0
def clone(path):
    run(
        [
            "git", "clone", "https://github.com/epics-base/epics-base.git",
            os.path.basename(path)
        ],
        cwd=os.path.dirname(path),
    )
    run(
        ["git", "checkout", "R7.0.3.1"],
        cwd=path,
    )
    run(
        ["git", "submodule", "update", "--init", "--recursive"],
        cwd=path,
    )
Esempio n. 6
0
 def build(self):
     run(["mkdir", "-p", self.output])
     run(
         [
             "cmake",
             "-DCMAKE_TOOLCHAIN_FILE={}".format(
                 os.path.join(
                     self.tools["freertos"].path,
                     "tools/cmake_toolchain_files/armgcc.cmake",
                 )),
             "-G",
             "Unix Makefiles",
             "-DCMAKE_BUILD_TYPE=Release",
             self.path,
         ],
         add_env={
             "FREERTOS_DIR": self.tools["freertos"].path,
             "ARMGCC_DIR": self.tools["armgcc_mcu"].path,
         },
         cwd=self.output,
     )
     run(["make", "-j4"], cwd=self.output)
Esempio n. 7
0
 def clean(self):
     run(["rm", "-rf", self.output])
Esempio n. 8
0
    def load(self, outdir):
        if os.path.exists(outdir):
            return

        root, name = os.path.split(outdir)
        run(["mkdir", "-p", root])

        if not os.path.exists(os.path.join(root, self.archive)):
            try:
                run(["wget", self.url], cwd=root)
            except:
                run(["rm", self.archive], cwd=root)
                raise

        try:
            run(["tar", "xvf", self.archive], cwd=root)
        except:
            run(["rm", "-rf", self.name], cwd=root)
            raise

        run(["mv", self.name, name], cwd=root)
Esempio n. 9
0
 def _dev_run_cmd(self, args):
     run(["ssh", "root@{}".format(self.device)] + args)
Esempio n. 10
0
def clean(epicsdir):
    try:
        run(["make", "clean", "uninstall"], cwd=epicsdir)
    except SubprocError:
        run(["git", "clean", "-dfX"], cwd=epicsdir)
Esempio n. 11
0
def build(epicsdir):
    run(["make"], cwd=epicsdir)