tec-app / deploy_fresh.py
gsstec's picture
Upload folder using huggingface_hub
77e34fc verified
#!/usr/bin/env python3
"""
Fresh deployment script - creates a new HF Space from scratch
"""
import os
import subprocess
from pathlib import Path
def run_command(cmd):
"""Run a command and return the result"""
try:
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
if result.returncode != 0:
print(f"Error: {result.stderr}")
return False
print(result.stdout)
return True
except Exception as e:
print(f"Exception: {e}")
return False
def deploy_fresh():
"""Deploy to a fresh HF Space"""
hf_token = os.getenv('HF_TOKEN')
if not hf_token:
print("HF_TOKEN not set. Please run:")
print("set HF_TOKEN=your_huggingface_token_here")
return False
print("Creating fresh HF Space deployment...")
# Create deployment script
deploy_script = f'''
from huggingface_hub import HfApi
api = HfApi(token="{hf_token}")
# Get username first
try:
user_info = api.whoami()
username = user_info["name"]
print(f"Username: {{username}}")
except Exception as e:
print(f"Could not get username: {{e}}")
username = "gsstec" # fallback
repo_id = f"{{username}}/tec-app"
print(f"Creating space: {{repo_id}}")
try:
# Create the space
api.create_repo(
repo_id=repo_id,
repo_type="space",
space_sdk="docker",
exist_ok=True,
private=False
)
print("Space created successfully!")
print("Uploading files...")
# Upload files
api.upload_folder(
folder_path=".",
repo_id=repo_id,
repo_type="space",
ignore_patterns=[".git", "__pycache__", "*.pyc", "temp_deploy.py", "deploy_fresh.py", "redeploy.py"]
)
print(f"Successfully deployed to https://huggingface.co/spaces/{{repo_id}}")
print("Your app will be available in a few minutes!")
print("The Docker container will build and start automatically.")
except Exception as e:
print(f"Deployment failed: {{e}}")
import traceback
traceback.print_exc()
'''
with open('temp_deploy.py', 'w') as f:
f.write(deploy_script)
success = run_command("python temp_deploy.py")
# Cleanup
if Path('temp_deploy.py').exists():
Path('temp_deploy.py').unlink()
return success
if __name__ == "__main__":
print("Fresh HF Space Deployment")
print("=" * 25)
if deploy_fresh():
print("Deployment completed!")
else:
print("Deployment failed!")