manager.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:lib9 作者: Jumpscale 项目源码 文件源码
def commit(self, uci):
        """
        Commint uci package to openwrt.
        """
        buffer = StringIO()
        buffer.write('uci import {package} <<UCI\n'.format(
            package=uci.package
        ))

        uci.dump(buffer)

        buffer.write('\nUCI\n')
        # command = buffer.getvalue()

        with settings(shell=self.WRT_SHELL, abort_exception=UCIError):
            buffer.seek(0)
            chunk = buffer.read(WRITE_CHUNK_SIZE)
            if len(chunk) < WRITE_CHUNK_SIZE:
                j.sal.process.execute(chunk)
                return

            # Write chunks into file
            tmp = os.tempnam()
            try:
                j.sal.process.execute(
                    'echo -n > {tmp} "{chunk}"'.format(
                        tmp=tmp,
                        chunk=chunk
                    )
                )

                while True:
                    chunk = buffer.read(WRITE_CHUNK_SIZE)
                    if not chunk:
                        break
                    j.sal.process.execute(
                        'echo -n >> {tmp} "{chunk}"'.format(
                            tmp=tmp,
                            chunk=chunk
                        )
                    )

                j.sal.process.execute('chmod +x %s' % tmp)
                j.sal.process.execute(tmp)
            finally:
                j.sal.process.execute('rm -f %s')
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号