Built an OpenWrt-RepoTool - OpenWrt repo tool redux

I have created OpenWrt-RepoTool after experimenting with Google's repo tool (from AOSP) (as described in 'repo' tool (from AOSP) manifests and git repos for OpenWrt) and I discovered that it wasn't working quite as I wished.

OpenWrt-RepoTool is a

Tool for downloading OpenWrt repos to create a development workspace, by Daniel F. Dickinson. Inspired by Google's repo tool from AOSP, and began life as a 'post-sync' hook for that tool.

It is currently pre-alpha and I would welcome testers, code reviewers, etc.

It is written in Python (mostly because it began life as a post-sync hook for Google's repo tool, and that is the language Google chose to use for post-sync hooks).

It's the work of spare time for about a week and a half (including two weekends), so it's not going to save the world, but despite the fact I don't program in Python much, I think it's turning out well.

I have written an extensive README and hope to publish to PyPI, in hopes that others will find it useful.

https://gitlab.com/dfd-web/firmware/openwrt-mirrors/openwrt-repotool/-/blob/main/README.md

1 Like

Maybe I don’t understand, but what’s terribly difficult about cloning the git repo or downloading an available SDK?

Describe an example use case for when your tool might be useful to a developer.

1 Like

@andrewjlamarche @remittor Ah, yes I described what, but not why.

It may be a bit of an edge case - it's obviously not that downloading and setting up a single (or two) git repo(s) and/or SDK/ImageBuilder once in a while is difficult for me (or likely anyone else), but that when working with multiple devices (with mostly different targets), SDK/IB snapshots (which change daily, so I want updated regularly), preferring to start with a clean build environment, and wanting to have additional configuration for things like linting and spell checking, that are not wanted in OpenWrt repos themselves, I found I was executing the same thing over, and over again to set up fresh workspaces.

So, where this is useful is for a scenario in which at least some of the following are true:

  • Working in more than repo on regular basis (e.g. packages and luci)
  • Working with daily snapshot SDK and/or ImageBuilder, and
  • Starting with a clean build environment on a regular basis
  • Working with multiple targets
  • DRY is a thing for you (Don't Repeat Yourself)
  • Wanting your workspace to have tools outside the typical OpenWrt setup (e.g. linting/spell checking).
  • You want the workspace setup to be consistent and correct each time

Now, how to put that in the description and/or README...

2 Likes

I have published an alpha 1 version to PyPI: https://pypi.org/project/openwrt-repotool/