From 9f8a013bfccbf6cf80d4b1e7fa4274490e31df7f Mon Sep 17 00:00:00 2001 From: Vendicated Date: Fri, 19 Jul 2024 22:03:09 +0200 Subject: [PATCH] don't use asar in dev --- .idea/VencordInstaller.iml | 2 +- github_downloader.go | 29 ++++++++++++++++++++++++----- patcher.go | 18 +++++++++--------- 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/.idea/VencordInstaller.iml b/.idea/VencordInstaller.iml index 3259f19..53c31bb 100644 --- a/.idea/VencordInstaller.iml +++ b/.idea/VencordInstaller.iml @@ -4,7 +4,7 @@ diff --git a/github_downloader.go b/github_downloader.go index ecede1e..df6e2de 100644 --- a/github_downloader.go +++ b/github_downloader.go @@ -13,6 +13,7 @@ import ( "io" "net/http" "os" + path "path/filepath" "regexp" "strconv" "strings" @@ -110,8 +111,21 @@ func InitGithubDownloader() { Log.Debug("Latest hash is", LatestHash, "Local Install is", Ternary(LatestHash == InstalledHash, "up to date!", "outdated!")) }() + // either .asar file or directory with main.js file (in DEV) + VencordFile := VencordDirectory + + stat, err := os.Stat(VencordFile) + if err != nil { + return + } + + // dev + if stat.IsDir() { + VencordFile = path.Join(VencordFile, "main.js") + } + // Check hash of installed version if exists - b, err := os.ReadFile(VencordAsarPath) + b, err := os.ReadFile(VencordFile) if err != nil { return } @@ -133,6 +147,11 @@ func InitGithubDownloader() { func installLatestBuilds() (retErr error) { Log.Debug("Installing latest builds...") + if IsDevInstall { + Log.Debug("Skipping due to dev install") + return + } + downloadUrl := "" for _, ass := range ReleaseData.Assets { if ass.Name == "desktop.asar" { @@ -158,15 +177,15 @@ func installLatestBuilds() (retErr error) { retErr = err return } - out, err := os.OpenFile(VencordAsarPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) + out, err := os.OpenFile(VencordDirectory, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) if err != nil { - Log.Error("Failed to create", VencordAsarPath+":", err) + Log.Error("Failed to create", VencordDirectory+":", err) retErr = err return } read, err := io.Copy(out, res.Body) if err != nil { - Log.Error("Failed to download to", VencordAsarPath+":", err) + Log.Error("Failed to download to", VencordDirectory+":", err) retErr = err return } @@ -179,7 +198,7 @@ func installLatestBuilds() (retErr error) { return } - _ = FixOwnership(VencordAsarPath) + _ = FixOwnership(VencordDirectory) InstalledHash = LatestHash return diff --git a/patcher.go b/patcher.go index be7a01d..8292f1e 100644 --- a/patcher.go +++ b/patcher.go @@ -16,7 +16,7 @@ import ( ) var BaseDir string -var VencordAsarPath string +var VencordDirectory string func init() { if dir := os.Getenv("VENCORD_USER_DATA_DIR"); dir != "" { @@ -30,11 +30,11 @@ func init() { BaseDir = appdir.New("Vencord").UserConfig() } - if dir := os.Getenv("VENCORD_ASAR_FILE"); dir != "" { - Log.Debug("Using VENCORD_ASAR_FILE") - VencordAsarPath = dir + if dir := os.Getenv("VENCORD_DIRECTORY"); dir != "" { + Log.Debug("Using VENCORD_DIRECTORY") + VencordDirectory = dir } else { - VencordAsarPath = path.Join(BaseDir, "vencord.asar") + VencordDirectory = path.Join(BaseDir, "vencord.asar") } } @@ -87,7 +87,7 @@ func patchAppAsar(dir string, isSystemElectron bool) (err error) { } Log.Debug("Writing custom app.asar to", appAsar) - if err := WriteAppAsar(appAsar, VencordAsarPath); err != nil { + if err := WriteAppAsar(appAsar, VencordDirectory); err != nil { return err } @@ -137,14 +137,14 @@ func (di *DiscordInstall) patch() error { } } - Log.Debug("This is a flatpak. Trying to grant the Flatpak access to", VencordAsarPath+"...") + Log.Debug("This is a flatpak. Trying to grant the Flatpak access to", VencordDirectory+"...") isSystemFlatpak := strings.HasPrefix(di.path, "/var") var args []string if !isSystemFlatpak { args = append(args, "--user") } - args = append(args, "override", name, "--filesystem="+VencordAsarPath) + args = append(args, "override", name, "--filesystem="+VencordDirectory) fullCmd := "flatpak " + strings.Join(args, " ") Log.Debug("Running", fullCmd) @@ -165,7 +165,7 @@ func (di *DiscordInstall) patch() error { err = cmd.Run() } if err != nil { - return errors.New("Failed to grant Discord Flatpak access to " + VencordAsarPath + ": " + err.Error()) + return errors.New("Failed to grant Discord Flatpak access to " + VencordDirectory + ": " + err.Error()) } } return nil