Microsoft-Edge-Updater/updater.1.md
TheOnePath 6c46a42e78 Fixed spelling
Fixed typos identified in PR review.
Updated manpage accordingly by generation.
2021-07-01 13:32:24 +01:00

6.2 KiB

title section header footer date
UPDATER 1 User Manual updater 0.2.0 June 30, 2021

NAME

updater — Automatically update Microsoft Edge on Solus

SYNOPSIS

updater [ option ]

OPTIONS

  • -nn, --no-notify
    Prevent notifications from being sent after a session.
  • -c, --set-channel=
    Change the channel to be updated for Microsoft Edge. Will default to the value defined in souce.list if flag is not present.
    • beta - update the Beta channel release.
    • dev - update the Dev channel release.
  • -q, --quiet
    Operate strictly with no output on STDOUT or STDERR, prompts will NOT assume yes however. Logging still occurs in background.
  • --mode=
    Set the mode of the program to be ran in. Default mode occurs without this flag.
    • debug - run program in debug mode. (WIP)
  • --full-clean
    Remove all content generated by updater after a session, this includes all logs.
  • -y, --yes-all
    Assume yes to all yes/no decisions.
  • -v, --version
    Print out the version of the script and exit.
  • -h, --help
    Print this help message and exit

DESCRIPTION

Microsoft Edge Updater is a program which will download and update your installation of Microsoft Edge to the latest release version identified. The main script is updater and while the system is akin to a package manager, it's much, much simpler.

Systems that run Debian-based distros (using the apt package manager) or Fedora/openSUSE (using the dnf package manager), should install Microsoft Edge to their package manager according to the official guide over at Microsoft Edge Insider - Command line installation.

For those systems that use the amd64 architecture but not the perviously mentioned bases/distros, or package managers, may benefit from this program. updater uses the Debian (.deb) release versions of Microsoft Edge and automatically installs them to your system so you don't have to again!

NOTE

updater must be ran with root privileges. If the script fails to identify its elevation, it will exit and display a message to STDOUT.

DISCLAIMER!!

Currently this program has only updated Microsoft Edge for amd64 architectures, other architectures might be possible but not tested.

Testing Systems

updater has been known to successfully run, download and update Microsoft Edge (Beta) on Solus 4.2 Fortitude, Kernel version 5.11.21-179 and later.

The test environment is a custom Docker image built from the Alpine base. Due to certain dependencies of Microsoft Edge, updater will currently finish with exit code 11 on a successful session due to the binary, msedge, not being able to run. This issue is only known for Busybox systems using musl, and not glibc, which Microsoft Edge is built using.

DEPENDENCIES

  • bash
  • wget
  • git
  • gunzip
  • tar
  • coreutils (>=8.32)
  • binutils (>=2.35.1)
  • procps (only Busybox-based systems)

FILES

  • source.list

    This file contains a list of URL end-points to the official Microsoft Edge packages page. There are 3 lines with dedicated purposes:

    • [host]
      A URL to the front page of Microsoft's Packages site, used to check connectivity and if the site is reachable.
    • [dists]
      Most iconic line and resembles that of an APT entry for package information. This line can be broken into 4 parts
      1. [dists=amd64,<beta | dev>]
        This tells the updater which package architecture it should download for the system. Comma delimited to that, determine which channel of Microsoft Edge to update by default, and can be changed or override by flag arguments. The default value of dists is amd64,beta.
      2. <https URL>
        The URL which points to the distribution repository on the Microsoft Packages server.
      3. main
        The main branch of the distribution repository.
      4. stable
        The type of release that should be installed to the system.
    • [pool]
      The prefix URL to the repository end-point that stores the latest releases. The suffix comes from the Release information.
  • logs/

    This is a directory which holds the session and history logs.

    • logs/updater.log
      A full report log of the previous update session. Replaced after every next update session.
    • logs/updater.history
      A history of all the previous update sessions. Never replaced, only appended to after every next update session.
  • utils/

    Resource directory which contains any utility scripts. These are stand-alone; however, don't have any specific purpose being executed by a user.

    • utils/common
      A utility file with common functions for updater.

EXIT STATUS

  • 0 — Successful
  • 1 — General Error (Errors not severe enough to the cause of the updater to stop)
  • 2 — Could not find source.list for the update
  • 3 — Host could not be reached. Check Internet connectivity and/or host URL
  • 4 — Failed to download either the Packages information or Content information files
  • 5 — Pool end-point could not be reached
  • 6 — Failed to download the identified Debian (.deb) file from the host's pool
  • 7 — Checksum verification of Debian (.deb) file failed. At this point, the downloaded file is removed
  • 8 — Failed to unarchive the Debian (.deb) file or decompress the data.tar.gz file
  • 9 — Failed to copy the new files to the system. At this point, the backup is restored to the system to prevent corruption
  • 10 — The archive function failed to create an archive of the system
  • 11 — If the system successfully restored files on an update failure, the updater will exit with this code stating the update failed but restoration was successful
  • 12 — The restore function failed to restore the files to their original location
  • 254 — The channel to update cannot be identified. Most likely cause is source.list is corrupt and -c was not passed.
  • 255 — EOF flag was set when reading the Packages information file
  • Other — an exit code not related to updater may have been raised. Consult the logs to identify which command returned the exit code.

AUTHORS

  • Ethan Smith-Coss

CONTRIBUTORS

  • Robert Morrison — Documentation

Contacting

All contacts should be done through Issues on Gitea.