{"id":15294079,"url":"https://github.com/updatehub/uhu","last_synced_at":"2025-04-13T13:26:39.488Z","repository":{"id":48870592,"uuid":"90907874","full_name":"UpdateHub/uhu","owner":"UpdateHub","description":"UpdateHub's firmware update package management utilities","archived":false,"fork":false,"pushed_at":"2024-08-19T18:06:22.000Z","size":935,"stargazers_count":10,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T05:20:37.535Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UpdateHub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-10T20:59:26.000Z","updated_at":"2022-12-05T03:06:12.000Z","dependencies_parsed_at":"2024-10-14T22:40:57.431Z","dependency_job_id":"58b3bd78-eab5-4e17-bd11-0651f3f74193","html_url":"https://github.com/UpdateHub/uhu","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UpdateHub%2Fuhu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UpdateHub%2Fuhu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UpdateHub%2Fuhu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UpdateHub%2Fuhu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UpdateHub","download_url":"https://codeload.github.com/UpdateHub/uhu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248719592,"owners_count":21150768,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-30T16:57:21.085Z","updated_at":"2025-04-13T13:26:39.464Z","avatar_url":"https://github.com/UpdateHub.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Tests](https://github.com/UpdateHub/uhu/workflows/CI/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/UpdateHub/uhu/badge.svg?branch=master)](https://coveralls.io/github/UpdateHub/uhu?branch=master)\n[![PyPI](https://img.shields.io/pypi/v/uhu)](https://pypi.python.org/pypi/uhu/)\n[![PyPI - Supported Python Versions](https://img.shields.io/pypi/pyversions/uhu)](https://pypi.python.org/pypi/uhu/)\n\n# uhu - UpdateHub Utilities\n\nuhu is an interactive prompt and a command line utility to manage update\npackages for [UpdateHub](https://github.com/UpdateHub/updatehub) agent.\n\n## Installing\n\nuhu is available in PyPI and can be install with `pip`:\n\n```\npip3 install uhu\n```\n\n### System Dependencies\n\nuhu is compatible with Python 3.4 and onwards.\n\nIf you plan to work with compressed data, be sure to also have\ninstalled in your system the compressors you use.\n\nUntil now, UpdateHub supports the following compressors:\n\n* lzop\n* xz\n* gzip\n\n\n## Getting started\n\nTo start uhu interactive prompt, just type `uhu` in your\nterminal. Within interactive prompt, you can always press `tab` to\nautocomplete or to check available commands.\n\n### Setting credentials\n\nIn the first run `uhu`, you will be prompted to provide your UpdateHub\ncredentials. You can get your access and secret keys in UpdateHub web\ninterface.\n\nAfter that you are ready to start creating update packages.\n\n\u003e You just have to do this step once, since uhu will save your\n\u003e credentials at `$HOME/.uhu`. If you need to update your credentials,\n\u003e you may use the `auth` command within interactive prompt.\n\n## Creating an update package\n\nTo create a update package, we need to set some basic info first.\n\n\u003e The `show` command will always print your current package data so\n\u003e you can check if everything is ok.\n\n### 1. Set the product\n\nCurrently, you can't create a new product within `uhu`, so you have to\nfirst create a product in the web interface.\n\nAfter that, grab the product UID generated and type the following\nwithin the interactive prompt:\n\n    product use \u003cyour-product-uid\u003e\n\nYour prompt will be updated with an abbreviated version of what you\ntyped. And remember, if you need to check if everything is ok, just\ntype `show`.\n\n### 2. Set the package version\n\nThe package version plays a very important role within UpdateHub. This\nversion will be the software version that your device will run after\nan update. To set it, just type:\n\n    package version \u003cthe-new-version\u003e\n\n### 3. Set the hardware compatibility\n\nBy default, the package that you are creating will be available for\nall type of hardware that you have. But if you have many devices in\nfield it is also possible that you also have different brands of\nhardware for the same product. Taking this in consideration, it is\npossible that, for example, hardware brand X requires an incompatible\nconfiguration with hardware brand Y to update to version 2.0.\n\nFor this kind of issue, `uhu` presents a way to create an update\npackage to only selected hardware. To do so, just add the hardware\nidentifiers that are compatible with the package that you are\ncreating:\n\n    hardware add\n\nIt will start a new prompt that will ask you to specify a hardware\nidentifier that you want to target with this package.\n\nIf you need to remove a hardware identifier, type the following:\n\n    hardware remove\n\nAnd you all be presented to a prompt that will assist you into remove\nthe identifiers that you want.\n\n### 4. Add objects (files, images, firmwares, etc...)\n\nWith everything set, you are now able to add true content of your\nupdated package. Since this content may be diverse, from just an image\nfile to a complete root filesystem image, we like to call them as\nobjects.\n\nTo add an object to your package, type:\n\n    package add\n\nIt will start a new prompt asking you all the needed information to\ninstruct the UpdateHub device agent on how to install the object\nwithin your device.\n\nThere are also 2 more commands to help you to manage objects, `edit` and `remove`:\n\n    package edit    # edit an already added object\n    package remove  # remove an added object\n\n### 5. Push the package\n\nAfter to set product, version, supported hardware and objects, you are now able\nto upload your package to the UpdateHub server. To do so:\n\n    package push\n\nIt's done! You are now able to go to the UpdateHub web interface and\nrollout your package.\n\n## License\n\nuhu is released under the GPL-2.0 license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupdatehub%2Fuhu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupdatehub%2Fuhu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupdatehub%2Fuhu/lists"}