Skip to content

Commit

Permalink
dpkg --confiugure -a Option #169
Browse files Browse the repository at this point in the history
  • Loading branch information
Jean28518 committed Mar 7, 2024
1 parent 8e54d7e commit 241728e
Show file tree
Hide file tree
Showing 9 changed files with 85 additions and 8 deletions.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,16 @@ flatpak run io.github.jean28518.Linux-Assistant

- English
- German
- Italian

## Mission

<https://github.com/Jean28518/linux-assistant/blob/main/MANIFEST.md>

## Development

```bash
# Install flutter

flutter run
```
7 changes: 7 additions & 0 deletions lib/content/basic_entries.dart
Original file line number Diff line number Diff line change
Expand Up @@ -156,5 +156,12 @@ List<ActionEntry> getBasicEntries(BuildContext context) {
color: MintY.currentColor,
),
),
ActionEntry(
name: AppLocalizations.of(context)!.fixPackageManager,
description: AppLocalizations.of(context)!.fixPackageManagerDescription,
action: "fix_package_manager",
iconWidget: Icon(Icons.bug_report, size: 48, color: MintY.currentColor),
keywords: ["fix", "package", "manager", "apt", "dpkg", "rpm", "zypper"],
),
];
}
2 changes: 2 additions & 0 deletions lib/l10n/app_de.arb
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,8 @@
"free": "Frei",
"allBiggestFolders": "Alle größten Ordner",
"settingUpFirewall": "Konfiguriere Firewall...",
"fixPackageManager": "Paketverwaltung reparieren",
"fixPackageManagerDescription": "Updates oder Installationen können nicht mehr durchgeführt werden? Versuche die automatische Reparatur der Paketverwaltung.",
"@helloWorld": {
"placeholders": {},
"description": "",
Expand Down
2 changes: 2 additions & 0 deletions lib/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,8 @@
"automaticCleanupDescription": "Automatically clean up your storage by deleting temporary files and package caches. Trash cans will also be emptied.",
"diskUsage": "Disk usage",
"settingUpFirewall": "Configure firewall...",
"fixPackageManager": "Repair package management",
"fixPackageManagerDescription": "Updates or installations can no longer be carried out? Try the automatic repair of the package management.",
"@helloWorld": {
"placeholders": {},
"description": "The conventional newborn programmer greeting",
Expand Down
10 changes: 5 additions & 5 deletions lib/l10n/app_it.arb
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@
"teamsDescription": "Software proprietario di comunicazione per team.",
"communicationSoftware": "Software di comunicazione",
"flatpakIsNotInstalled": "Flatpak non è installato sul tuo sistema.",
"flatpakDescription": "Per un facile accesso a molte app popolari, si consiglia vivamente Flatpak. Flatpak è una nuova utility per la gestione dei pacchetti per Linux. Offre un ambiente sandbox in cui le app possono essere eseguite in isolamento dal resto del sistema. Collegando "Flathub" (il più grande repository per flatpak) puoi accedere a oltre 1800 diverse app Linux. Come svantaggio i Flatpak richiedono più spazio su disco.",
"flatpakDescription": "Per un facile accesso a molte app popolari, si consiglia vivamente Flatpak. Flatpak è una nuova utility per la gestione dei pacchetti per Linux. Offre un ambiente sandbox in cui le app possono essere eseguite in isolamento dal resto del sistema. Collegando 'Flathub' (il più grande repository per flatpak) puoi accedere a oltre 1800 diverse app Linux. Come svantaggio i Flatpak richiedono più spazio su disco.",
"skip": "Salta",
"settingUpFlatpak": "Configura Flatpak",
"officeSelection": "Selezione Ufficio",
Expand All @@ -112,7 +112,7 @@
"timeToSetupYourComputerDescription": "Configura la tua macchina Linux in base alle tue esigenze.",
"activateHotkey": "Attiva il tasto di scelta rapida",
"openLinuxAssistantFaster": "Apri l'Assistente Linux più velocemente.",
"openLinuxAssistantFasterDescription": "Puoi aprire Linux Assistant con i tasti {modificatore} + <Qn Questo è altamente raccomandato per massimizzare la tua produttività sotto Linux.",
"openLinuxAssistantFasterDescription": "Puoi aprire Linux Assistant con i tasti {modifier} + <Qn Questo è altamente raccomandato per massimizzare la tua produttività sotto Linux.",
"@openLinuxAssistantFasterDescription": {
"placeholders": {
"modifier" : {}
Expand All @@ -134,8 +134,8 @@
"specialFunctions": "Funzioni speciali di Linux-Assistant",
"specialFunctionsDescription": "Avvia il controllo di sicurezza o il servizio post-installazione e anche tante altre piccole routine che semplificano l'utilizzo quotidiano di Linux. Questi sono presentati sotto la barra di ricerca in ordine radomizzato.",
"hint": "Suggerimento",
"youCanOpenThisWindowBySearchingForIntroduction": "Puoi riaprire questo sito cercando "Introduzione a Linux-Assistant".",
"youCanOpenLinuxAssistantWithHotkey": "Puoi sempre aprire Linux Assistant con la combinazione di tasti {modifier} + <Q>. Se ancora non funziona, chiama "scorciatoia da tastiera" nella ricerca.",
"youCanOpenThisWindowBySearchingForIntroduction": "Puoi riaprire questo sito cercando 'Introduzione a Linux-Assistant'.",
"youCanOpenLinuxAssistantWithHotkey": "Puoi sempre aprire Linux Assistant con la combinazione di tasti {modifier} + <Q>. Se ancora non funziona, chiama 'scorciatoia da tastiera' nella ricerca.",
"@youCanOpenLinuxAssistantWithHotkey": {
"placeholders": {
"modifier" : {}
Expand Down Expand Up @@ -234,7 +234,7 @@
"description": "",
"type": "text"
},
"installingXDescription": "Installazione di {app}...\Devi aprire {app} successivamente e separatamente.",
"installingXDescription": "Installazione di {app}...\nDevi aprire {app} successivamente e separatamente.",
"@installingXDescription": {
"placeholders": {
"app" : {}
Expand Down
3 changes: 2 additions & 1 deletion lib/layouts/main_screen/main_search.dart
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,8 @@ class _MainSearchState extends State<MainSearch> {
// Otherwise check if all keys are contained in name or description
for (String key in keys) {
if (actionEntry.name.toLowerCase().contains(key) ||
actionEntry.description.toLowerCase().contains(key)) {
actionEntry.description.toLowerCase().contains(key) ||
actionEntry.keywords.contains(key)) {
return true;
}
}
Expand Down
1 change: 1 addition & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ class MyApp extends StatelessWidget {
supportedLocales: const [
Locale('en', ''),
Locale('de', ''),
Locale('it', ''),
],
theme: darkTheme ? MintY.themeDark() : MintY.theme(),
home: firstPage,
Expand Down
6 changes: 4 additions & 2 deletions lib/services/action_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,9 @@ class ActionHandler {
if (actionEntry.action.startsWith("just_callback")) {
callback();
}
}

static void handleRecommendation() {}
if (actionEntry.action.startsWith("fix_package_manager")) {
Linux.fixPackageManager(context);
}
}
}
53 changes: 53 additions & 0 deletions lib/services/linux.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2248,4 +2248,57 @@ class Linux {
route: route,
)));
}

static String getPATH() {
// Get the PATH variable via the environment
String? output = Platform.environment["PATH"];
if (output == null || output.isEmpty) {
return "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin";
}
return output;
}

static void fixPackageManager(context) {
if (currentenvironment.installedSoftwareManagers
.contains(SOFTWARE_MANAGERS.APT)) {
commandQueue.add(LinuxCommand(
userId: 0,
command: "/usr/bin/dpkg --configure -a",
environment: {"DEBIAN_FRONTEND": "noninteractive", "PATH": getPATH()},
));
commandQueue.add(LinuxCommand(
userId: 0,
command: "/usr/bin/apt install -f -y",
environment: {"DEBIAN_FRONTEND": "noninteractive"},
));
}
if (currentenvironment.installedSoftwareManagers
.contains(SOFTWARE_MANAGERS.ZYPPER)) {
commandQueue.add(LinuxCommand(
userId: 0,
command: "/usr/bin/zypper --non-interactive --gpg-auto-import-keys ref",
));
commandQueue.add(LinuxCommand(
userId: 0,
command: "/usr/bin/zypper --non-interactive --gpg-auto-import-keys up",
));
}
if (currentenvironment.installedSoftwareManagers
.contains(SOFTWARE_MANAGERS.DNF)) {
commandQueue.add(LinuxCommand(
userId: 0,
command: "/usr/bin/dnf check",
));
commandQueue.add(LinuxCommand(
userId: 0,
command: "/usr/bin/dnf install -y",
));
}

Navigator.of(context).push(MaterialPageRoute(
builder: (context) => RunCommandQueue(
title: AppLocalizations.of(context)!.fixPackageManager,
route: MainSearchLoader()),
));
}
}

0 comments on commit 241728e

Please sign in to comment.