コード例 #1
0
ファイル: install.py プロジェクト: sssss38438/idb
async def _generate_app_chunks(
    app_path: str, logger: Logger
) -> AsyncIterator[InstallRequest]:
    logger.debug(f"Generating chunks for .app {app_path}")
    async for chunk in tar.generate_tar([app_path]):
        yield InstallRequest(payload=Payload(data=chunk))
    logger.debug(f"Finished generating .app chunks {app_path}")
コード例 #2
0
ファイル: install.py プロジェクト: sssss38438/idb
async def _generate_framework_chunks(
    path: str, logger: Logger
) -> AsyncIterator[InstallRequest]:
    logger.debug(f"Generating chunks for {path}")
    async for chunk in tar.generate_tar([path]):
        yield InstallRequest(payload=Payload(data=chunk))
    logger.debug(f"Finished generating chunks {path}")
コード例 #3
0
ファイル: install.py プロジェクト: facebook/idb
async def _generate_dsym_chunks(
        path: str, compression: Compression,
        logger: Logger) -> AsyncIterator[InstallRequest]:
    logger.debug(f"Generating chunks for {path}")
    async for chunk in tar.generate_tar([path], compression):
        yield InstallRequest(payload=Payload(data=chunk))
    logger.debug(f"Finished generating chunks {path}")
コード例 #4
0
ファイル: client.py プロジェクト: trantrungtin/idb
 async def push(self, src_paths: List[str], container: FileContainer,
                dest_path: str) -> None:
     async with self.stub.push.open() as stream:
         await stream.send_message(
             PushRequest(inner=PushRequest.Inner(
                 bundle_id=file_container_to_bundle_id_deprecated(
                     container),
                 dst_path=dest_path,
                 container=file_container_to_grpc(container),
             )))
         if self.is_local:
             for src_path in src_paths:
                 await stream.send_message(
                     PushRequest(payload=Payload(file_path=src_path)))
             await stream.end()
             await stream.recv_message()
         else:
             await drain_to_stream(
                 stream=stream,
                 generator=stream_map(
                     generate_tar(paths=src_paths,
                                  verbose=self._is_verbose),
                     lambda chunk: PushRequest(payload=Payload(data=chunk)),
                 ),
                 logger=self.logger,
             )
コード例 #5
0
async def daemon(client: CompanionClient,
                 stream: Stream[AddMediaResponse, AddMediaRequest]) -> None:
    async with client.stub.add_media.open() as companion:
        if client.is_local:
            generator = stream
        else:
            paths = [request.payload.file_path async for request in stream]
            generator = stream_map(
                generate_tar(paths=paths, place_in_subfolders=True),
                lambda chunk: AddMediaRequest(payload=Payload(data=chunk)),
            )
        response = await drain_to_stream(stream=companion,
                                         generator=generator,
                                         logger=client.logger)
        await stream.send_message(response)
コード例 #6
0
 async def add_media(self, file_paths: List[str]) -> None:
     async with self.get_stub() as stub, stub.add_media.open() as stream:
         if none_throws(self.companion_info).is_local:
             for file_path in file_paths:
                 await stream.send_message(
                     AddMediaRequest(payload=Payload(file_path=file_path)))
             await stream.end()
             await stream.recv_message()
         else:
             generator = stream_map(
                 generate_tar(paths=file_paths, place_in_subfolders=True),
                 lambda chunk: AddMediaRequest(payload=Payload(data=chunk)),
             )
             await drain_to_stream(stream=stream,
                                   generator=generator,
                                   logger=self.logger)
コード例 #7
0
async def daemon(client: CompanionClient, stream: Stream[PushResponse,
                                                         PushRequest]) -> None:
    async with client.stub.push.open() as companion:
        await companion.send_message(await stream.recv_message())
        if client.is_local:
            generator = stream
        else:
            paths = [request.payload.file_path async for request in stream]
            generator = stream_map(
                generate_tar(paths=paths),
                lambda chunk: PushRequest(payload=Payload(data=chunk)),
            )
        response = await drain_to_stream(stream=companion,
                                         generator=generator,
                                         logger=client.logger)
        await stream.send_message(response)
コード例 #8
0
ファイル: client.py プロジェクト: trantrungtin/idb
 async def add_media(self, file_paths: List[str]) -> None:
     async with self.stub.add_media.open() as stream:
         if self.is_local:
             for file_path in file_paths:
                 await stream.send_message(
                     AddMediaRequest(payload=Payload(file_path=file_path)))
             await stream.end()
             await stream.recv_message()
         else:
             self.logger.info(f"Adding media from {file_paths}")
             generator = stream_map(
                 generate_tar(
                     paths=file_paths,
                     place_in_subfolders=True,
                     verbose=self._is_verbose,
                 ),
                 lambda chunk: AddMediaRequest(payload=Payload(data=chunk)),
             )
             await drain_to_stream(stream=stream,
                                   generator=generator,
                                   logger=self.logger)
コード例 #9
0
 async def push(self, src_paths: List[str], bundle_id: str,
                dest_path: str) -> None:
     async with self.get_stub() as stub, stub.push.open() as stream:
         await stream.send_message(
             PushRequest(inner=PushRequest.Inner(bundle_id=bundle_id,
                                                 dst_path=dest_path)))
         if none_throws(self.companion_info).is_local:
             for src_path in src_paths:
                 await stream.send_message(
                     PushRequest(payload=Payload(file_path=src_path)))
             await stream.end()
             await stream.recv_message()
         else:
             await drain_to_stream(
                 stream=stream,
                 generator=stream_map(
                     generate_tar(paths=src_paths),
                     lambda chunk: PushRequest(payload=Payload(data=chunk)),
                 ),
                 logger=self.logger,
             )