diff --git a/github_cursor_register.py b/github_cursor_register.py new file mode 100644 index 0000000..c6391b7 --- /dev/null +++ b/github_cursor_register.py @@ -0,0 +1,141 @@ +import os +import shutil +import platform +import time +import uuid +import subprocess + +def delete_directory(path): + """Deletes a directory and all its contents.""" + if os.path.exists(path): + try: + shutil.rmtree(path) + print(f"āœ… Removed: {path}") + except Exception as e: + print(f"āŒ Failed to remove: {path} -> {e}") + else: + print(f"šŸ” Not found: {path}") + +def delete_file(path): + """Deletes a file if it exists.""" + if os.path.isfile(path): + try: + os.remove(path) + print(f"āœ… Removed file: {path}") + except Exception as e: + print(f"āŒ Failed to remove file: {path} -> {e}") + else: + print(f"šŸ” Not found: {path}") + +def reset_machine_id(): + """Resets the machine ID to a new UUID.""" + new_id = str(uuid.uuid4()) + if platform.system() == "Windows": + try: + subprocess.run( + ["reg", "add", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography", "/v", "MachineGuid", "/d", new_id, "/f"], + check=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE + ) + print(f"āœ… MachineGuid reset to: {new_id}") + except subprocess.CalledProcessError as e: + print(f"āŒ Failed to reset MachineGuid: {e}") + elif platform.system() == "Linux": + machine_id_paths = ["/etc/machine-id", "/var/lib/dbus/machine-id"] + for path in machine_id_paths: + if os.path.exists(path): + try: + with open(path, 'w') as f: + f.write(new_id) + print(f"āœ… Reset machine ID at: {path}") + except Exception as e: + print(f"āŒ Failed to reset machine ID at {path}: {e}") + elif platform.system() == "Darwin": # macOS + # macOS typically doesn't use a machine-id file like Linux + print("ā„¹ļø macOS does not use a machine-id file. Skipping machine ID reset.") + else: + print("āŒ Unsupported operating system for machine ID reset.") + +def reset_cursor(): + print("\nšŸš€ Resetting Cursor AI...\n") + + # Platform-specific paths + paths = [] + if platform.system() == "Linux": + paths = [ + os.path.expanduser("~/.cursor"), + os.path.expanduser("~/.local/share/cursor"), + os.path.expanduser("~/.config/cursor"), + os.path.expanduser("~/.cache/cursor"), + "/usr/local/bin/cursor", + "/opt/cursor", + "/usr/bin/cursor", + os.path.expanduser("~/.cursor/machine-id.db"), + os.path.expanduser("~/.local/share/Cursor"), + os.path.expanduser("~/.config/Cursor"), + os.path.expanduser("~/.cache/Cursor") + ] + elif platform.system() == "Darwin": # macOS + paths = [ + os.path.expanduser("~/Library/Application Support/Cursor"), + os.path.expanduser("~/Library/Caches/Cursor"), + "/Applications/Cursor.app", + os.path.expanduser("~/Library/Preferences/com.cursor.app.plist"), + ] + elif platform.system() == "Windows": + paths = [ + os.path.expanduser("~\\AppData\\Local\\Cursor"), + os.path.expanduser("~\\AppData\\Roaming\\Cursor"), + os.path.expanduser("~\\.cursor"), + os.path.expanduser("~\\.config\\Cursor"), + os.path.expanduser("~\\.cache\\Cursor"), + "C:\\Program Files\\Cursor", + "C:\\Program Files (x86)\\Cursor", + "C:\\Users\\%USERNAME%\\AppData\\Local\\Cursor", + "C:\\Users\\%USERNAME%\\AppData\\Roaming\\Cursor", + ] + + # Remove directories + for path in paths: + delete_directory(path) + + # Remove common files related to Cursor + files = [ + os.path.expanduser("~/.cursor/machine-id.db"), + os.path.expanduser("~/.local/share/cursor.db"), + os.path.expanduser("~/.config/cursor/preferences.json"), + os.path.expanduser("~/.cache/cursor.log"), + ] + + for file in files: + delete_file(file) + + # Extra cleanup (wildcard search) + print("\nšŸ” Deep scanning for hidden Cursor files...") + base_dirs = ["/tmp", "/var/tmp", os.path.expanduser("~")] # Linux and macOS + if platform.system() == "Windows": + base_dirs = ["C:\\Temp", "C:\\Windows\\Temp", os.path.expanduser("~")] # Windows + + for base in base_dirs: + for root, dirs, files in os.walk(base): + for dir in dirs: + if "cursor" in dir.lower(): + delete_directory(os.path.join(root, dir)) + for file in files: + if "cursor" in file.lower(): + delete_file(os.path.join(root, file)) + + # Reset machine ID + reset_machine_id() + + print("\nāœ… Cursor AI has been completely reset!") + +def main(): + start_time = time.time() + reset_cursor() + end_time = time.time() + print(f"\nā±ļø Completed in {end_time - start_time:.2f} seconds.") + +if __name__ == '__main__': + main()