Usage | CLI
Step 1 - Create Keypack
Create a keypack on an air-gapped computer, not your dev machine, for best security. You'll be asked for the name of the application. It's important that you use the same name when creating a new keypack for the same application. If you don't your application will not be able to verify update meta-data and will not auto-update!
$ pyupdater keys -c
Step 2 - Copy Keypack
Copy the keypack to the dev machine & place in the root of the code repository.
$ scp dev-machine:keypack.pyu .
Step 3 - Init Repo
In the root of your repo run the init command. You'll be asked a few questions about your application then 2 directories & a config file will be created. The first directory is pyu-data which is used as a working directory for PyUpdater. The other is a hidden directory for repository configuration and data files.
$ pyupdater init
Step 4 - Import Keypack
Make sure the keypack file is in the root the repo. After you've successfully imported the keypack it's safe to delete.
$ pyupdater keys -i
Step 5 - Integrate PyUpdater
Step 6 - Make Spec
Is your app more of the demanding type? Generate your spec file with PyUpdater then make edits as necessary. If you do not need a custom spec file skip to the next step. Please see the spec-file section in the Danger Zone.
$ pyupdater make-spec -w main.py # or $ pyupdater make-spec -F -w main.py # To show pyinstaller build info use --pyinstaller-log-info
Step 7 - Build
You have two options when building. You can specify a spec file or a main script. Please see the version numbers section in the Danger Zone.
# Build from a spec file. $ pyupdater build --app-version=1.0.0 main.spec # Build from a script. $ pyupdater build --app-version=1.0.0 main.py # To show pyinstaller build info use --pyinstaller-log-info
Step 8 - Create patches
Gets sha256 hashes, file sizes, adds meta-data to version manifest and copies files to deploy folder. If a source files is available, patches will also be created. You can combine --process with --sign.
$ pyupdater pkg --process
Step 9 - Cryptographically Sign
Now lets sign & gzip our version manifest, gzip our keyfile & place both in the deploy directory. Note that the signing process works without any user intervention. You can combine --sign with --process
$ pyupdater pkg --sign # For CI/CD $ pyupdater pkg --sign --slit-version
Step 10 - List Installed Plugins
Get a list of the plugins you have installed. You probably wont have to run this many times :)
# You can install the official plugins with # pip install pyupdater[s3, scp] $ pyupdater plugins s3 by Digital Sapphire scp by Digital Sapphire
Step 11 - Configure Plugin
Your plugin may or may not need configuration. If you are not sure then please check the documentation for that plugin.
$ pyupdater settings --plugin s3
Step 12 - Upload
We've made it. Time to upload our updates, patches & metadata. You won't have any patches to upload on the first run. Don't worry they'll be there next time.
$ pyupdater upload --service s3