[arch] fix -> 'rebuild-detector' integration not working when launched from KDE menu or PyCharm

This commit is contained in:
Vinicius Moreira
2021-01-15 17:56:02 -03:00
parent 765bdff851
commit 465c90a7b6
6 changed files with 8 additions and 11 deletions

View File

@@ -11,7 +11,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- [rebuild-detector](https://github.com/maximbaz/rebuild-detector) integration - [rebuild-detector](https://github.com/maximbaz/rebuild-detector) integration
- if a package needs to be rebuilt, it will be marked for update (rebuild-detector must be installed on your system, but it is not a hard requirement). - if a package needs to be rebuilt, it will be marked for update (rebuild-detector must be installed on your system, but it is not a hard requirement).
- if you hold the mouse over the package 'version' the message "The package needs to be reinstalled" will be displayed. - if you hold the mouse over the package 'version' the message "The package needs to be reinstalled" will be displayed.
- this integration is still in testing and can be controlled though the new settings property **aur_rebuild_detector** (default: false). - this integration can be controlled though the new settings property **aur_rebuild_detector** (default: true).
<p align="center"> <p align="center">
<img src="https://raw.githubusercontent.com/vinifmor/bauh-files/master/pictures/releases/0.9.12/rebuild_detector.png"> <img src="https://raw.githubusercontent.com/vinifmor/bauh-files/master/pictures/releases/0.9.12/rebuild_detector.png">
</p> </p>
@@ -25,8 +25,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
<img src="https://raw.githubusercontent.com/vinifmor/bauh-files/master/pictures/releases/0.9.12/ignore_rebuild_check.png"> <img src="https://raw.githubusercontent.com/vinifmor/bauh-files/master/pictures/releases/0.9.12/ignore_rebuild_check.png">
</p> </p>
- form some reason **rebuild-detector** hangs when executed within PyCharm (this integration is disabled regarding this particular scenario for now)
- new custom action to quickly reinstall a package - new custom action to quickly reinstall a package
<p align="center"> <p align="center">
<img src="https://raw.githubusercontent.com/vinifmor/bauh-files/master/pictures/releases/0.9.12/aur_reinstall.png"> <img src="https://raw.githubusercontent.com/vinifmor/bauh-files/master/pictures/releases/0.9.12/aur_reinstall.png">

View File

@@ -214,7 +214,7 @@ check_dependency_breakage: true # if, during the verification of the update requ
suggest_unneeded_uninstall: false # if the dependencies apparently no longer necessary associated with the uninstalled packages should be suggested for uninstallation. When this property is enabled it automatically disables the property 'suggest_optdep_uninstall'. Default: false (to prevent new users from making mistakes) suggest_unneeded_uninstall: false # if the dependencies apparently no longer necessary associated with the uninstalled packages should be suggested for uninstallation. When this property is enabled it automatically disables the property 'suggest_optdep_uninstall'. Default: false (to prevent new users from making mistakes)
suggest_optdep_uninstall: false # if the optional dependencies associated with uninstalled packages should be suggested for uninstallation. Only the optional dependencies that are not dependencies of other packages will be suggested. Default: false (to prevent new users from making mistakes) suggest_optdep_uninstall: false # if the optional dependencies associated with uninstalled packages should be suggested for uninstallation. Only the optional dependencies that are not dependencies of other packages will be suggested. Default: false (to prevent new users from making mistakes)
categories_exp: 24 # It defines the expiration time (in HOURS) of the packages categories mapping file stored in disc. Use 0 so that it is always updated during initialization. categories_exp: 24 # It defines the expiration time (in HOURS) of the packages categories mapping file stored in disc. Use 0 so that it is always updated during initialization.
aur_rebuild_detector: false # it checks if packages built with old library versions require to be rebuilt. If a package needs to be rebuilt, it will be marked for update ({} must be installed). Default: false. aur_rebuild_detector: true # it checks if packages built with old library versions require to be rebuilt. If a package needs to be rebuilt, it will be marked for update ('rebuild-detector' must be installed). Default: true.
``` ```
- Required dependencies: - Required dependencies:
- **pacman** - **pacman**

View File

@@ -323,7 +323,7 @@ def check_enabled_services(*names: str) -> Dict[str, bool]:
return {s: status[i].strip().lower() == 'enabled' for i, s in enumerate(names) if s} return {s: status[i].strip().lower() == 'enabled' for i, s in enumerate(names) if s}
def execute(cmd: str, shell: bool = False, cwd: Optional[str] = None, output: bool = True, custom_env: Optional[dict] = None) -> Tuple[int, Optional[str]]: def execute(cmd: str, shell: bool = False, cwd: Optional[str] = None, output: bool = True, custom_env: Optional[dict] = None, stdin: bool = True) -> Tuple[int, Optional[str]]:
params = { params = {
'args': cmd.split(' ') if not shell else [cmd], 'args': cmd.split(' ') if not shell else [cmd],
'stdout': subprocess.PIPE if output else subprocess.DEVNULL, 'stdout': subprocess.PIPE if output else subprocess.DEVNULL,
@@ -331,6 +331,9 @@ def execute(cmd: str, shell: bool = False, cwd: Optional[str] = None, output: bo
'shell': shell 'shell': shell
} }
if not stdin:
params['stdin'] = subprocess.DEVNULL
if cwd is not None: if cwd is not None:
params['cwd'] = cwd params['cwd'] = cwd

View File

@@ -39,4 +39,4 @@ class ArchConfigManager(YAMLConfigManager):
'suggest_optdep_uninstall': False, 'suggest_optdep_uninstall': False,
'aur_idx_exp': 1, 'aur_idx_exp': 1,
'categories_exp': 24, 'categories_exp': 24,
'aur_rebuild_detector': False} 'aur_rebuild_detector': True}

View File

@@ -583,10 +583,6 @@ class ArchManager(SoftwareManager):
def __fill_packages_to_rebuild(self, output: Dict[str, Set[str]]): def __fill_packages_to_rebuild(self, output: Dict[str, Set[str]]):
if rebuild_detector.is_installed(): if rebuild_detector.is_installed():
if 'PYCHARM_CLASSPATH' in os.environ:
self.logger.warning("'rebuild-detector' is currently not working within PyCharm. Aborting...")
return
self.logger.info("rebuild-detector: checking") self.logger.info("rebuild-detector: checking")
to_rebuild = rebuild_detector.list_required_rebuild() to_rebuild = rebuild_detector.list_required_rebuild()
output['to_rebuild'].update(to_rebuild) output['to_rebuild'].update(to_rebuild)

View File

@@ -11,7 +11,7 @@ def is_installed() -> bool:
def list_required_rebuild() -> Set[str]: def list_required_rebuild() -> Set[str]:
code, output = system.execute(cmd='checkrebuild') code, output = system.execute(cmd='checkrebuild', shell=True, stdin=False)
required = set() required = set()
if code == 0 and output: if code == 0 and output: