Setool | Setup

# Add SETool to path setool_home = Path("{self.home_dir}") sys.path.insert(0, str(setool_home.parent))

if == " main ": main()

@main.command() def status(): """Show setup status""" console.print("[green]✓ SETool is properly configured[/green]") setool setup

# Import and run main CLI try: from setool.cli import main sys.exit(main()) except ImportError as e: print(f"Error importing SETool: {{e}}") print("Please run 'python setup.py' to complete installation") sys.exit(1) ''' script_path.write_text(script_content) script_path.chmod(0o755) print(f"✓ Executable created at {script_path}") # Add to PATH (Linux/macOS) if sys.platform != "win32": bashrc = Path.home() / ".bashrc" if bashrc.exists(): with open(bashrc, 'a') as f: f.write(f'\nexport PATH="$PATH:{self.home_dir}"\n') print("✓ Added to PATH in .bashrc") return True except Exception as e: print(f"✗ Failed to create executable: {e}") return False def verify_installation(self) -> Dict: """Verify installation completeness""" print("\n🔍 Verifying installation...") checks = { "directories": all(Path(d).exists() for d in [ self.setup_config["installation_dir"], self.setup_config["data_dir"], self.setup_config["logs_dir"] ]), "config_file": self.config_file.exists(), "env_file": (self.home_dir / ".env").exists(), "executable": (self.home_dir / "setool").exists() } for check, passed in checks.items(): status = "✓" if passed else "✗" print(f"{status} {check}: {'OK' if passed else 'FAILED'}") return checks def save_config(self) -> bool: """Save configuration to file""" try: self.home_dir.mkdir(exist_ok=True) with open(self.config_file, 'w') as f: json.dump(self.setup_config, f, indent=4) print(f"✓ Configuration saved to {self.config_file}") return True except Exception as e: print(f"✗ Failed to save configuration: {e}") return False def run(self, skip_deps: bool = False, force: bool = False) -> bool: """Main setup routine""" print("🚀 SETool Setup - Professional Installation\n") print("=" * 50) if force and self.config_file.exists(): print("⚠️ Force mode: Reinstalling...") shutil.rmtree(self.home_dir, ignore_errors=True) # Step 1: Create directories print("\n📁 Creating directories...") if not self.create_directories(): return False # Step 2: Install dependencies if not skip_deps: if not self.install_dependencies(): print("⚠️ Dependency installation failed, continuing...") # Step 3: Setup environment print("\n🌍 Setting up environment...") if not self.setup_environment_variables(): return False # Step 4: Create executable print("\n🔧 Creating executable...") if not self.create_executable_script(): return False # Step 5: Save configuration self.setup_config["setup_complete"] = True if not self.save_config(): return False # Step 6: Verify verification = self.verify_installation() if all(verification.values()): print("\n✅ SETool setup completed successfully!") print(f"\n📍 Installation location: {self.home_dir}") print(f"📝 Configuration file: {self.config_file}") print("\n💡 Next steps:") print(" 1. Restart your terminal or run: source ~/.bashrc") print(" 2. Run 'setool --help' to get started") return True else: print("\n❌ Setup completed with warnings. Please check the verification output.") return False # Add SETool to path setool_home = Path("{self

Ilot Property Bali Logo
ILOT PROPERTY BALI
Comprehensive Property Services
×
Hi, how can we help you?
WhatsApp Icon

Get Your Free Guide to Property Investment in Bali