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 + */