Skip to content
This repository has been archived by the owner on Mar 4, 2022. It is now read-only.
/ ge-install-manager Public archive

GloriousEggroll proton-ge-custom installation manager. Install any release version, check for the latest release, verify that an installation is not corrupt, and probably much more than you ever wanted.

License

Notifications You must be signed in to change notification settings

toazd/ge-install-manager

Repository files navigation

NOTE: On February 27th, 2022 the naming scheme for Proton-GE was changed enough
that this script is no longer compatible with both the old and the new naming schemes. I currently
do not have the time or motivation to do the substantial overhaul of this script that would be necessary
to bring it up to date. This project has long since served its purpose of being a learning resource for me
to learn Bash scripting and it was a lot of fun while it lasted. I started a new career which does not involve computing
roughly 6 months ago (8/31/21) and since then I no longer use Steam or Proton-GE for entertainment or otherwise.
Because the future of this project is unknown I will be archiving it after this last commit.
Please do not expect this script to be updated any time soon, if at all.
Please do not depend on this script for anything important.
Thank you and good luck!



ge-install-manager is a helper script with the
primary purpose of making managing your installations of
Proton-ge-custom (https://github.com/GloriousEggroll/proton-ge-custom) a breeze.

Basic installation:
      Download ge-install-manager and run ./ge-install-manager -L to list releases available to install.
      Run ge-install-manager -i <version> to install (eg. 5.9-GE-ST-8).

Quick installation:
      Ensure the current working path is where you want ge-install-manager installed and then run:
      CURL=curl; bash -c "$(eval $CURL -sL 'https://raw.githubusercontent.com/toazd/ge-install-manager/master/ge-install-manager' -o ge-install-manager; chmod +x ge-install-manager; ./ge-install-manager)"
      
NOTE: After installing Steam, you will need to run it at least once before
      this script will detect that it is installed.

NOTE: Ubuntu users - you may need to install curl (sudo apt install curl -y).

NOTE: The script will check for all required commands and then notify you
      if any are not found.

Distributions tested so far: Arch, Artix, Fedora Workstation, Gentoo, Manjaro, Manjaro XFCE, MX Linux,
                             Linux Mint, Linux Mint Debian Edition, Pop OS, Ubuntu
Shells tested so far: GNU Bash v5.0.18, v5.0.17, Zsh v5.8

Just in case you were wondering why someone would go to such great lengths to create such
a project it is because this project serves as a learning resource while practicing
Bash scripting.

Help:

    Required:       Bash 3.2+, curl, sed, tar, gzip, stat, wc, touch, file
    Optional:       date, du, pgrep, sort, cmp, envsubst, trash

    -h            - Show this help
    -H            - Show usage notes, formats, and examples
    -l            - List installed versions and saved packages
                      Saved package sizes are also checked (backports)
    -L            - List all releases available to install
    -n <version>  - Show release notes for <version>
                      Combined with -N, -n will be ignored
    -N            - Show release notes for all versions
    -S            - Report file count and disk usage of install path
    -s <version>  - Report file count and disk usage of <version>
    -U            - Check for and install the latest release
    -u            - Check for the latest release and report installed status
                      Combined with -U, -u will be ignored
    -i <version>  - Download and install <version>
    -R <version>  - Remove installed <version>
    -r <version>  - Remove saved package <version> (proton-ge tarball)
    -V            - Verify each installation using its saved package
                      Combined with -v, -V will be ignored
    -v <version>  - Verify <version> using its saved package
    -d <version>  - Download and save the package for <version>
    -D            - Remove cache and config files created by this script
                      To also remove all proton-ge-custom installations, use -XD.
    -x            - Remove all saved packages (proton-ge tarballs)
    -X            - Remove the entire install path
                      NOTE: Saved packages are currently stored in the installation path
    -f            - Force install, upgrade, or remove
                      Combined with -U and/or -i, remove saved package and download a new copy
    -A            - Automated mode (skip/disable certain prompts)
                      Skips prompting to edit a newly created config file
                      Skips prompt for creating a symlink to the script
    -z            - Enable verbose output mode (to stderr)
                      Format: (calling line)[function trace]: message

Usage:

  Default config path:        ${XDG_CONFIG_HOME:-"$HOME"/.config}/ge-install-manager

  - Acceptable formats for <version> (case-insensitive):
      5.9-GE-3-ST, Proton-5.9-GE-3-ST, Proton-5.9-GE-3-ST.tar.gz

  - Most parameters can be combined with other unique parameters.
    > NOTE: arguments must directly follow parameters that require arguments
      Example (both produce the same result):
        ./ge-install-manager -Hh
        ./ge-install-manager -h -H
          Result: Show help and then show usage
      Example (both produce the same result):
        ./ge-install-manager -lSui 5.9-GE-3-ST
        ./ge-install-manager -lS -i 5.9-GE-3-ST -u
          Result: Check for the latest version and install it,
           install version 5.9-GE-3-ST, list installed versions, then
           report file and disk usage for the install path
      Example: (assume the latest version is 5.9-GE-3-ST)
        ./ge-install-manager -z -u -i Proton-5.11-GE-1-MF -Xf
          Result: enable verbose mode, remove the installation path,
           update to the latest version 5.9-GE-3-ST, and then install version 5.11-GE-1-MF.
      Example (both produce the same result):
        ./ge-install-manager -s 5.6-GE-3-ST -S
        ./ge-install-manager -Ss 5.6-GE-3-ST
          Result: report disk usage and file count for the install path,
           and then report disk usage and file count for version 5.6-GE-3-ST

  - The order of parameters is not significant except:
    > If during invocation multiple identical parameters are supplied.
      Example:
        ./ge-install-manager -s 5.11-GE-1-MF -s 5.9-GE-3-ST
          Result: Only the right-most parameter and argument will be processed (-s 5.9-GE-3-ST).

  - Order of operations if multiple unique parameters are supplied:
    > NOTE: -h and/or -H, and -fzZ/-fzT will exit irrespective of other parameters
      Show help,
      Show usage,
      Check for latest release,
      Show all releases available,
      Show release notes for all versions,
      Show release notes for a version,
      Remove install path,
      Remove saved packages (if remove install path is not active),
      Uninstall script (remove g_script_cache_path g_script_config_path),
      Remove installed version (if remove install path is not active),
      Remove saved package (if remove install path is not active),
      Download,
      Update,
      Install,
      List installed,
      Report install path disk usage,
      Report specific version disk usage
      Verify

Version history:
  v0.6.3 of ge-install-manager.sh is the initial upload (prior versions not tracked by any VCS)
  v0.6.3 to v0.6.7 are in commit history for ge-install-manager.sh
    (starting with commit aefa2a4ad2bf29de84e213f286db8337791218b5)
  Commit history for ge-install-manager.sh:
    (git log --all --full-history ge-install-manager.sh)

About

GloriousEggroll proton-ge-custom installation manager. Install any release version, check for the latest release, verify that an installation is not corrupt, and probably much more than you ever wanted.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages