Пример #1
0
 def launch(self):
     subprocess.run(["clear"])
     print_heading(self.menu_heading, fg="bright_yellow")
     if not node_is_installed():
         print_message(INSTALL_ERROR, fg="bright_red", bold=True)
         pause(message="Press any key to continue...")
         return
     if not NODEJS_INBOX.exists():
         NODEJS_INBOX.mkdir(parents=True, exist_ok=True)
     if node_modules_folder_exists():
         message = UPDATE_MESSAGE
         prompt = UPDATE_PROMPT
         temp_folder = None
         command = "npm update --timeout=9999999"
     else:
         message = INSTALL_MESSAGE
         prompt = INSTALL_PROMPT
         temp_folder = TemporaryDirectory(dir=NIGHTMAREJS_FOLDER)
         command = f"npm install --timeout=9999999 --cache={temp_folder.name}"
     print_message(message, fg="bright_yellow")
     if not yes_no_prompt(prompt, wrap=False):
         return Result.Ok(self.exit_menu)
     subprocess.run(["clear"])
     print_heading(self.menu_heading, fg="bright_yellow")
     result = run_command(command, cwd=str(NIGHTMAREJS_FOLDER))
     if result.failure:
         return result
     if temp_folder:
         temp_folder.cleanup()
     pause(message="\nPress any key to continue...")
     return Result.Ok(self.exit_menu)
Пример #2
0
 def display_initial_task_status(self):
     if node_is_installed():
         print_message("Node.js Installed.............: YES",
                       fg="bright_green",
                       bold=True)
     else:
         print_message("Node.js Installed.............: NO",
                       fg="bright_red",
                       bold=True)
     if node_modules_folder_exists():
         print_message("Electron/Nightmare Installed..: YES",
                       fg="bright_green",
                       bold=True)
     else:
         print_message("Electron/Nightmare Installed..: NO",
                       fg="bright_red",
                       bold=True)
     if self.db_setup_complete:
         print_message("SQLite DB Initialized.........: YES",
                       fg="bright_green",
                       bold=True)
     else:
         print_message("SQLite DB Initialized.........: NO",
                       fg="bright_red",
                       bold=True)
Пример #3
0
 def populate_menu_items(self):
     main_menu_items = self.get_menu_items()
     self.menu_items = list(main_menu_items.values())
     if node_modules_folder_exists():
         self.menu_items.remove(main_menu_items["npm_install"])
     if not self.db_setup_complete:
         self.menu_items.remove(main_menu_items["create_job"])
         self.menu_items.remove(main_menu_items["all_jobs"])
         self.menu_items.remove(main_menu_items["status_reports"])
     else:
         self.menu_items.remove(main_menu_items["setup_db"])
         self.menu_items.remove(main_menu_items["restore_db"])
     if not self.audit_report:
         self.menu_items.remove(main_menu_items["combine_data"])
     if self.audit_report and not self.data_failures_exist():
         self.menu_items.remove(main_menu_items["scraped_data_errors"])
     if self.audit_report and not self.games_combined_exist():
         self.menu_items.remove(main_menu_items["scraped_game_data"])
Пример #4
0
 def initialize(self):
     errors = []
     if not node_is_installed():
         errors.append(NODEJS_INSTALL_ERROR)
     elif not node_modules_folder_exists():
         errors.append(NPM_PACKAGES_INSTALL_ERROR)
     result = self.check_url_delay_settings()
     if result.failure:
         errors.append(result.error)
     result = self.check_s3_bucket() if self.s3_bucket_required(
     ) else Result.Ok()
     if result.failure:
         errors.append(result.error)
     result = self.create_all_folderpaths()
     if result.failure:
         errors.append(result.error)
     if not errors:
         self.start_time = datetime.now()
         return Result.Ok()
     return Result.Fail("\n".join(errors))
Пример #5
0
 def __init__(self, app):
     super().__init__(app)
     self.menu_heading = "Update Node Packages" if node_modules_folder_exists(
     ) else "Install Node Packages"
     self.menu_item_text = self.menu_heading
     self.menu_item_emoji = EMOJIS.get("PACKAGE")
Пример #6
0
 def initial_setup_complete(self):
     return node_is_installed() and node_modules_folder_exists(
     ) and self.db_setup_complete