diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/flatpak-downgrade.iml b/.idea/flatpak-downgrade.iml
new file mode 100644
index 0000000..5e764c4
--- /dev/null
+++ b/.idea/flatpak-downgrade.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..55ed7e3
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cmd/root.go b/cmd/root.go
index 277ea14..68ffdeb 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -1,23 +1,18 @@
-/*
-Copyright © 2024 Mark Bailey
-This file is part of a CLI application developed by Mark Bailey
-*/
+// Package cmd
package cmd
import (
- "bufio"
"fmt"
+ "github.com/spf13/cobra"
"log"
"os"
"os/exec"
- "strings"
-
- "github.com/spf13/cobra"
)
var (
// Flags
IgnoreUpgrade bool
+ Unmask bool
Version string
// Args
@@ -44,36 +39,25 @@ func downgrade() {
cmd := exec.Command("flatpak", "update", "--commit="+Version, PkgName)
- outpipe, _ := cmd.StdoutPipe()
- defer outpipe.Close()
- scanner := bufio.NewScanner(outpipe)
-
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
- err := cmd.Start()
+ err := cmd.Run()
if err != nil {
- log.Fatal("Start Error: ", "\nPlease try running with root privileges.")
panic(err)
}
- var text string
- for scanner.Scan() {
- text = scanner.Text() + text
- if strings.Contains(scanner.Text(), "Nothing to do.") {
- os.Exit(0)
- }
+ if IgnoreUpgrade && Unmask {
+ log.Fatal("Error: Cannot use both --ignore-upgrade and --unmask flags together.")
}
-
- fmt.Println("Text was: " + text)
-
if IgnoreUpgrade {
mask()
+ } else if Unmask {
+ unmask()
}
fmt.Println("Downgrade successful!")
- os.Exit(0)
}
func mask() {
@@ -86,6 +70,15 @@ func mask() {
}
}
+func unmask() {
+ mask := exec.Command("flatpak", "mask", "--remove", PkgName)
+ maskErr := mask.Run()
+ if maskErr != nil {
+ log.Fatal("Error: ", maskErr, "\nPlease try running with root privileges.")
+ } else {
+ fmt.Println("Marked ", PkgName, " as upgradable.")
+ }
+}
func Execute() {
err := rootCmd.Execute()
if err != nil {
@@ -95,5 +88,11 @@ func Execute() {
func init() {
rootCmd.Flags().BoolVarP(&IgnoreUpgrade, "ignore-upgrage", "i", false, "Mark flatpak as ignored for upgrade")
+ rootCmd.Flags().BoolVarP(&Unmask, "unmask", "u", false, "Mark flatpak as upgradable")
rootCmd.Flags().StringVarP(&Version, "version", "v", "", "Commit hash of the specific version")
}
+
+/*
+ * Copyright © 2024 Mark Bailey
+ * This file is part of a CLI application developed by Mark Bailey
+ */