From 80cfe8a0cca3095f9d221fe7126b3086a08fa435 Mon Sep 17 00:00:00 2001 From: ADA-Funni Date: Mon, 6 Apr 2026 00:07:03 +0100 Subject: [PATCH] Add patch for to-hmm command --- hxpkg/Main.hx | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/hxpkg/Main.hx b/hxpkg/Main.hx index 66de119..0395e10 100644 --- a/hxpkg/Main.hx +++ b/hxpkg/Main.hx @@ -1,5 +1,6 @@ package hxpkg; +import haxe.Json; import haxe.ds.ArraySort; import haxe.io.Path; import hxpkg.PKGFile; @@ -69,11 +70,45 @@ class Main setupAlias(); case 'help': help(); + case 'to-hmm': + convertToHMM(Util.parsePKGFile()); default: Sys.println('$cmd is not a valid command. Run "hxpkg help" for help'); } } + static function convertToHMM(pkgFile:PKGFile) + { + var hmmFile:Array = []; + var packages:Array = pkgFile.get('default'); + + for (pkg in packages) + { + var type:String = pkg?.link == null ? 'haxelib' : 'git'; + + switch (type) + { + case 'haxelib': + hmmFile.push({ + name: pkg.name, + type: type, + version: pkg?.version + }); + + case 'git': + hmmFile.push({ + name: pkg.name, + type: type, + dir: pkg?.dir, + ref: pkg?.branch, + url: pkg?.link + }); + } + } + + File.saveContent('hmm.json', Json.stringify({dependencies: hmmFile}, null, ' ')); + } + static function install(args:Array, global:Bool, force:Bool, update:Bool):Void { Util.checkPKGFile(true);