Coder Social home page Coder Social logo

utm-templates's People

Contributors

3dcoded avatar

Stargazers

 avatar

Watchers

 avatar

utm-templates's Issues

Is it possible to show the download size in the UI

I was looking at the code and found the download link. If I remove /content from the URL, I get a JSON object that contains the file size of the ZIP file. I was thinking it's possible to parse the JSON, grab the download size, and then show in the UI.

Note this is not the same as the drive size, since the drive may be expandable up to 64GB (but not necessarily taking up that amount of space on the computer).

I'm always struggling for disk space, so knowing the download size is super helpful. Below is an example of the "Windows 10.utm.zip" VM url:

URL:
https://api.onedrive.com/v1.0/shares/u!aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBbzNpSVRXZV9FWmdwdElidHBEQV8tVmk4NlJhTmc_ZT1nZFFiUlo/root

API Response (truncated):

{
	...
        ...
	"lastModifiedDateTime": "2022-03-25T11:39:04.91Z",
	"name": "Windows 10.utm.zip",
	"parentReference": {
		"driveId": "6046fc9e3521e28d",
		"driveType": "personal"
	},
	"size": 5556485106,    // file size. I assume this is 5.5 GB
	"webUrl": "https://1drv.ms/u/s!Ao3iITWe_EZgptIbtpDA_-Vi86RaNg",
	"file": {
		"hashes": {
			"quickXorHash": "5LcKRAD//gDMG2F6lyJJy9e7FCI=",
			"sha1Hash": "9B97DC4D6114B7D1B00685E3AE2AC4B5F18FE3D7",
			"sha256Hash": "913AA67F5D7C842CB36E2D7C962E8281A8AB1384E712684E07A6E9ACDD740009"
		},
		"mimeType": "application/zip"
	},
         ...
         ...
}

Can we add the official templates to this app as well as the unofficial ones?

I was thinking that since the official gallery is simply linking to the release artifacts in the UTM/vm-downloads repo, it would also be possible to add them to this app. I'd prefer to download the official ones, if what I'm looking for is available already; otherwise, I'd look for a third party VM in a third-party gallery.

This is the URL to the official Debian 10.4 LXDE ARM64 UTM VM, for example:
https://github.com/utmapp/vm-downloads/releases/download/debian-10.4/debian-10.4-ldxe-arm64-utm.zip

Download VMs from JSON file hosted in repo

Rather than having UTM Templates update every time there is a new VM, it would be useful to store the VMs in a JSON file and download it into the app automatically. This would also help simplify #4

Allowing users to submit committed Zipped VM's as pull requests

What I was thinking could be done for submitting VM's as PR's is something like this:

  1. User creates a VM and zips it up as debian-11.2-amd64.utm.zip (or whatever name best represents the VM)
  2. User places the VM in the folder called vm-submissions
  3. User commits the VM with git add debian-11.2-amd64.utm.zip && git commit -m "Debian 11.2 AMD64 virtual machine with LXDE, similar to the ARM64 one but for the AMD64 architecture instead."
  4. Once PR is approved, GitHub Actions process kicks off that then takes the newly created VM and generates release notes with the VM uploaded as a GitHub Releases artifact. The workflow bash code might look something like this, if using the go module github-releases:
   - name:  Publish the VM ZIP file and release notes
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
          export VM_FILENAME=`git show --pretty="" --name-only`
          go install github.com/github-release/[email protected]
          
          echo "Set release notes for VM using the commit message as the VM description"
          ~/go/bin/github-release release -u smattar2020 -r vm-downloads --tag $VM_FILENAME --name $VM_FILENAME --description "`git log --format=oneline -n 1`"
          
          echo "Upload the VM as an artifact..."
          ~/go/bin/github-release upload -u smattar2020 -r vm-downloads --tag $VM_FILENAME --name $VM_FILENAME --file $VM_FILENAME

Sorry I don't have time to try this right now, but if you wanted to take this forward and give it a try, this is roughly similar to what I had done just a few days ago here. Hope this helps!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.