Skip to content

Commit 4b0c8fd

Browse files
committed
Update pn CLI
1 parent 25a14ad commit 4b0c8fd

File tree

1 file changed

+27
-12
lines changed
  • libs/pythonnative/cli

1 file changed

+27
-12
lines changed

libs/pythonnative/cli/pn.py

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
import os
33
import shutil
44
import subprocess
5+
import requests
6+
import zipfile
7+
import io
58

69

710
def init_project(args: argparse.Namespace) -> None:
@@ -11,38 +14,50 @@ def init_project(args: argparse.Namespace) -> None:
1114
# TODO: Implementation
1215

1316

17+
def download_template_project(template_url: str, destination: str) -> None:
18+
"""
19+
Download and extract a template project from a URL.
20+
21+
:param template_url: The URL of the template project.
22+
:param destination: The directory where the project will be created.
23+
"""
24+
response = requests.get(template_url, stream=True)
25+
26+
if response.status_code == 200:
27+
with zipfile.ZipFile(io.BytesIO(response.content)) as z:
28+
z.extractall(destination)
29+
30+
1431
def create_android_project(project_name: str, destination: str) -> bool:
1532
"""
16-
Create a new Android project using android command.
33+
Create a new Android project using a template.
1734
1835
:param project_name: The name of the project.
1936
:param destination: The directory where the project will be created.
2037
:return: True if the project was created successfully, False otherwise.
2138
"""
22-
# The command to create a new Android project
23-
command = f"cd {destination} && android create project --name {project_name} --path . --target android-30 --package com.example.{project_name} --activity MainActivity"
39+
android_template_url = "https://github.com/username/android_template/archive/main.zip" # replace with actual URL
2440

25-
# Run the command
26-
process = subprocess.run(command, shell=True, check=True, text=True)
41+
# Download and extract the Android template project
42+
download_template_project(android_template_url, destination)
2743

28-
return process.returncode == 0
44+
return True
2945

3046

3147
def create_ios_project(project_name: str, destination: str) -> bool:
3248
"""
33-
Create a new Xcode project using xcodeproj gem.
49+
Create a new iOS project using a template.
3450
3551
:param project_name: The name of the project.
3652
:param destination: The directory where the project will be created.
3753
:return: True if the project was created successfully, False otherwise.
3854
"""
39-
# The command to create a new Xcode project
40-
command = f"cd {destination} && xcodeproj new {project_name}.xcodeproj"
55+
ios_template_url = "https://github.com/username/ios_template/archive/main.zip" # replace with actual URL
4156

42-
# Run the command
43-
process = subprocess.run(command, shell=True, check=True, text=True)
57+
# Download and extract the iOS template project
58+
download_template_project(ios_template_url, destination)
4459

45-
return process.returncode == 0
60+
return True
4661

4762

4863
def run_project(args: argparse.Namespace) -> None:

0 commit comments

Comments
 (0)