feat: finalize pkg

This commit is contained in:
Mark Bailey 2024-09-09 06:25:32 -04:00
parent 98c91b5ca0
commit e34caf4ffe
5 changed files with 54 additions and 24 deletions

8
.idea/.gitignore generated vendored Normal file
View File

@ -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

9
.idea/flatpak-downgrade.iml generated Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="Go" enabled="true" />
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/flatpak-downgrade.iml" filepath="$PROJECT_DIR$/.idea/flatpak-downgrade.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -1,23 +1,18 @@
/* // Package cmd
Copyright © 2024 Mark Bailey <gitea.com/cerbervs>
This file is part of a CLI application developed by Mark Bailey
*/
package cmd package cmd
import ( import (
"bufio"
"fmt" "fmt"
"github.com/spf13/cobra"
"log" "log"
"os" "os"
"os/exec" "os/exec"
"strings"
"github.com/spf13/cobra"
) )
var ( var (
// Flags // Flags
IgnoreUpgrade bool IgnoreUpgrade bool
Unmask bool
Version string Version string
// Args // Args
@ -44,36 +39,25 @@ func downgrade() {
cmd := exec.Command("flatpak", "update", "--commit="+Version, PkgName) cmd := exec.Command("flatpak", "update", "--commit="+Version, PkgName)
outpipe, _ := cmd.StdoutPipe()
defer outpipe.Close()
scanner := bufio.NewScanner(outpipe)
cmd.Stdin = os.Stdin cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr cmd.Stderr = os.Stderr
err := cmd.Start() err := cmd.Run()
if err != nil { if err != nil {
log.Fatal("Start Error: ", "\nPlease try running with root privileges.")
panic(err) panic(err)
} }
var text string if IgnoreUpgrade && Unmask {
for scanner.Scan() { log.Fatal("Error: Cannot use both --ignore-upgrade and --unmask flags together.")
text = scanner.Text() + text
if strings.Contains(scanner.Text(), "Nothing to do.") {
os.Exit(0)
}
} }
fmt.Println("Text was: " + text)
if IgnoreUpgrade { if IgnoreUpgrade {
mask() mask()
} else if Unmask {
unmask()
} }
fmt.Println("Downgrade successful!") fmt.Println("Downgrade successful!")
os.Exit(0)
} }
func mask() { 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() { func Execute() {
err := rootCmd.Execute() err := rootCmd.Execute()
if err != nil { if err != nil {
@ -95,5 +88,11 @@ func Execute() {
func init() { func init() {
rootCmd.Flags().BoolVarP(&IgnoreUpgrade, "ignore-upgrage", "i", false, "Mark flatpak as ignored for upgrade") 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") rootCmd.Flags().StringVarP(&Version, "version", "v", "", "Commit hash of the specific version")
} }
/*
* Copyright © 2024 Mark Bailey <gitea.com/cerbervs>
* This file is part of a CLI application developed by Mark Bailey
*/