def clean(): ''' Remove Junk Packages Which Are Not Needed ''' if platform == 'linux': uninstaller = Uninstaller() password = getpass('Enter your password: '******'win32': arr = ['|', "/", "-", "\\"] slen = len(arr) print('Cleaning Your PC...') for i in range(1, 60): time.sleep(0.04) print(arr[i % slen], end='\r') elif platform == 'darwin': uninstaller = Uninstaller() password = getpass('Enter your password: ') uninstaller.clean(password)
def hyperpack(hyperpack_list): ''' Install Large Packs Of Applications And Packages ''' os_bar = IncrementalBar('Getting Operating System...', max=1) os_bar.next() installer = Installer() updater = Updater() cleaner = Uninstaller() hyperpacks = hyperpack_list.split(',') password = "" if platform == 'linux' or platform == 'darwin': password = getpass('Enter your password: '******'\n') password_bar = IncrementalBar('Verifying Password...', max=1) exitcode = is_password_valid(password) if exitcode == 1: click.echo('Wrong Password Entered... Aborting Installation!') return password_bar.next() click.echo('\n') if platform == 'linux': for hyperpack in hyperpacks: hyper_pack = hyperpkgs[hyperpack] packages = hyper_pack.packages.split(',') apps = hyper_pack.applications.split(',') # Installing Required Packages for package in packages: installer.install_task( devpackages_linux[package], f'sudo -S apt-get install -y {package}', password, f'{package} --version', [f'{devpackages_linux[package]} Version']) # Installing Required Applications for app in apps: installer.install_task( applications_linux[app], f'sudo -S snap install --classic {app}', password, '', []) # Updating Required Packages for package in packages: updater.updatepack(package, password) for app in apps: updater.updateapp(app, password) cleaner.clean(password) elif platform == 'win32': for hyperpack in hyperpacks: hyper_pack = hyperpkgs[hyperpack] packages = hyper_pack.packages.split(',') apps = hyper_pack.applications.split(',') for package in packages: installer.install_task( package_name=devpackages_windows[package], script=f'choco install {package} -y', password="", test_script=f'{package} --version', tests_passed=[f'{devpackages_windows[package]} Version']) for package in packages: updater.updatepack(package, password="") for app in apps: installer.install_task(package_name=applications_windows[app], script=f'choco install {app} -y', password="", test_script='', tests_passed=[]) for app in apps: updater.updateapp(app, password="") elif platform == 'darwin': for hyperpack in hyperpacks: hyper_pack = hyperpkgs[hyperpack] packages = hyper_pack.packages.split(',') apps = hyper_pack.applications.split(',') for package in packages: installer.install_task( package_name=devpackages_macos[package], script=f'brew install {package}', password="", test_script=f'{package} --version', tests_passed=[f'{devpackages_macos[package]} Version']) for package in packages: updater.updatepack(package, password="") for app in apps: installer.install_task(package_name=applications_macos[app], script=f'brew cask install {app}', password="", test_script='', tests_passed=[]) for app in apps: updater.updateapp(app, password="")
def remove(package_list): ''' Uninstall Applications And Packages ''' uninstaller = Uninstaller() if platform == 'linux' or platform == 'darwin': password = getpass('Enter your password: '******'' packages = package_list.split(',') for package in packages: if platform == 'linux': if package in devpackages_linux: uninstaller.uninstall(f'{apt_remove} {package}', password, package_name=devpackages_linux[package]) if package in applications_linux: uninstaller.uninstall(f'{snap_remove} {package}', password, package_name=applications_linux[package]) if package == 'anaconda': try: installer_progress = Spinner( message=f'Uninstalling Anaconda...', max=100) # sudo requires the flag '-S' in order to take input from # stdin for _ in range(1, 75): time.sleep(0.007) installer_progress.next() os.system(constant.anaconda_remove_folder) os.system(constant.anaconda_remove_file) with open('.bashrc', 'r') as file: lines = file.read() with open('.bashrc', 'w') as file: for line in lines: if 'anaconda' in line or 'miniconda' in line: continue else: file.write(line) # stdoutput = (output)[0].decode('utf-8') for _ in range(75, 101): time.sleep(0.01) installer_progress.next() click.echo( click.style( f'\n\n 🎉 Successfully Uninstalled Anaconda! 🎉 \n', fg='green')) except subprocess.CalledProcessError as e: click.echo(e.output) click.echo('An Error Occurred During Uninstallation...', err=True) if package == 'miniconda': try: installer_progress = Spinner( message=f'Uninstalling Miniconda...', max=100) # sudo requires the flag '-S' in order to take input from # stdin for _ in range(1, 75): time.sleep(0.007) installer_progress.next() os.system(constant.miniconda_remove_folder) os.system(constant.miniconda_remove_file) with open('.bashrc', 'r') as file: lines = file.read() with open('.bashrc', 'w') as file: for line in lines: if 'anaconda' in line or 'miniconda' in line: continue else: file.write(line) # stdoutput = (output)[0].decode('utf-8') for _ in range(1, 101): time.sleep(0.01) installer_progress.next() click.echo( click.style( f'\n\n 🎉 Successfully Uninstalled Miniconda! 🎉 \n', fg='green')) except subprocess.CalledProcessError as e: click.echo(e.output) click.echo('An Error Occurred During Uninstallation...', err=True) if platform == 'win32': if package in devpackages_windows: uninstaller.uninstall( f'choco uninstall {package} -y', password="", package_name=devpackages_windows[package]) elif package in applications_windows: uninstaller.uninstall( f'choco uninstall {package}', password="", package_name=applications_windows[package]) if platform == 'darwin': if package in devpackages_windows: uninstaller.uninstall(f'brew uninstall {package}', password="", package_name=devpackages_macos[package]) elif package in applications_windows: uninstaller.uninstall(f'brew cask uninstall {package}', password="", package_name=applications_macos[package])