diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 72d2f0bc..4cb887cd 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -21,3 +21,5 @@ Wails is what it is because of the time and effort given by these great people. * [Robin Eklind](https://github.com/mewmew) * [Kris Raney](https://github.com/kraney) * [Jack Mordaunt](https://github.com/JackMordaunt) + * [Michael Hipp](https://github.com/MichaelHipp) + * [Travis McLane](https://github.com/tmclane) \ No newline at end of file diff --git a/cmd/cmd-mewn.go b/cmd/cmd-mewn.go index d804f980..1b157960 100644 --- a/cmd/cmd-mewn.go +++ b/cmd/cmd-mewn.go @@ -5,7 +5,7 @@ package cmd import "github.com/leaanthony/mewn" func init() { - mewn.AddAsset(".", "../runtime/assets/bridge.js", "1f8b08000000000000ffac597b73e2ba92ff1b3e85ee9c9a821c12ccfb79726a8d2184244078e5c1dd5b596137b6882d1b4b606026df7d4bb601934966e66c2d332496d4ea6efdd44f47fa338e5e50f079091f5ec2a7f877f4dd9f9090f4f2f2825e922f67fed38bbf227d170b82f67fa4f0e945122b92f82ff604d349c1ed0cc5bfbfbc48e2fbdf2f2fe72f92ff4fec40283e3600994437b807e2279abbd802cf765fd1dc769107b30b93bc02c28ec3e249f50cdd014632e5864db72897c9562f1c1718501eff538a4b7fa2053308e508d81a5c466c5a4325f4a7148fcf5754e5c4a68850c29367e85b3c2649a8e1124d0764cf16a0f278cc2354b3bdb48789c966c1d2a5a08cb9a0da9482cafb6b704dbcad21ba32cdf3e8ca9858e0d6503e9311d31e9b0cef6a28e1b19a2499b68a4dc366bc962f64b34529609d1074e16662d311c71c8e7c559bce895e43dfde7c763063b6fa0a3c42804d7386d5d7e38c1de8763deeded5e2b1582cf19746d648353163975ffc335d1cb4bd0889bffcfd1b4417aa4d3950fe7bc49c7013befcfd28964380ff9234b2fefbaf99fb5b0c4c1b6b84eacc219482fbe5ef77bb89f6f9560b18c37a209d13aafb36245002aa856c223f1311d494d128002dfd09ef6f8ecd88b8a8da9c6c40ab73dba965ea26cc792d53f788c68d5a3693f95a377c330e9e8564ddb55754abb9fa0c2733e7e25fba74569fdb945fccb145cc6d8d61ca2e18b8645ed708738479519b427d7741a8069b5ad5ffbc7da6d8fe76be395813b8d572196783f2196753e7b0e117d8243aada94039b8a1a2b90c58f5c3795c3031276b38a85e00ab3eb35d0ddc0b176b64c56a59b0ea167675426bc5af08afb88d3291d35da8b669bbb53fe6f3797d666f2e988135dbab659d0d12df40216713dd412cac436de59a490d735cf3879243f5fa0c332815cec943a33ff432b76ddd966559ee8d26466ba2cbb2ac54c478a5c85d31b8776672594c2caf1add87d644fe879f56431e7cf4bc1f8b6f53f6bae251cced7fef3fd1b122eb1df17d4ff311bda0fba7ba5e35068fb7caa21400921f8ec66657be239d65d3786d3764e6dd2cee33edcd7da9372c3c56a51d5f0c9b5de37152ccb4ab7a11ae9fd6b369f5a9d5a96ea66375393573d8d46eed6271e0d9ca7a3ad1778660ccaa37c3d6d564d4859e09f0b85cc81363926928f83adfe1c4abee6ec7d57c6ad7cee406b759c3928ad757a9c56e7a539a0fa0a46e9f5aa9855e7d2adb556fb3da9a9dcebc305ee71ef2a959df6d3dd17945f306d2eda0d36ef672d22855e85b0fcac3d39d34521b744e669bc970d9696cef25a3df6b55dcca38356b76cd41b5723b32cbcf1563b77046957576c99b4665559c576e074edb99d3fb7b63d9aedc80adf7f2e5eb6515702fb7191a1d4fc66dbaf658e52a3b3236cbdba23dcb71ef9964afe46eb3e03eb1674e15e9a6458633b3a04e5ce5d1a05de56e7805d613ec9e66b36275705b7894477d669568ee319b2a288d71eec6e2bb4169cedc597b351b4abdab9996d38bcfd9723555f4a476eb1adfb2ebc5b302bcace8eed324cf37d8ed29e5e74dffe186771605a935dc75b5e97ca7e6b38693aaa8cd12b43b773a76a7cfd5d5349b336496c9afe78d6655c996b3faa8d8b776e5bebadec877830e2dac2ac361a3d15019a93e3ee63cbb5f25ce9d3edf39cfa6aeebf9e9501bf6274ae5765c1edc2d97f9c7ea6da3d89869570f7aa19aabbe6a9e534a2df1947615a5d7d016a9deb6977dac548ac3ad24dfe59b057930630f0f056a2ba42b2995fcebf67959c93c994df979c05d6cf64973670fe56bd3e68f666599e38bf5b3d9d7553d2b57162dd999e29492298d1b9abccb0dd6196f95cd76a4ddb4bfbd19945a5e1b76b9fbdcac72df19b859c3f3a83c65f2c6930b13f9b9bf7d9a6cbad2c629f16b9916da13ebbeddad0e7315fb61a32b199076839b9b4ea9b935b6d3ac5b5eed8603c3511fcb9bf27a8c1f47bbdb51bb84c129975f5d7bdc32f3934a76357ac09331d75b9dde5ca980b3490d0a57d591e398d7ed4aa1f55ab20a43795995c677affd86bbd9c24ad3a6c6f5badd71b24f4ff3ab6d7e9a5f73af37336fdba4495337a96a6eed7972e35a3716e56bba3347d9ebe26ba35095a76badad5ce9a471bf2c5597f3a77b37bf4da5b6c4bccaf47b8561058665e6c8ecce99568bbda5fc58e47896550bebd7a955c226e0856a74bde7b1d6b91b0cc65e2bd77f2864b3d36ef571c79b8bfba599cda9b8414a7ad399dc5a4dad30c93ef5b4c1665ab8eb3c0d8ad2d82ddc973b55feac5eb9cddb7c10c5ccabf1eb6835b014e52c1a805d7000f31ab5c3a7e8da21350459e3f3d4e3e7fa6f7e32636407b51c589f1387c939429e4de77fb6e1b410f8e6d8446873016ba09c053932cc67e92258fbf4150c82fc554b17c042cc368986b88b2973b00b94efb35b98b6f2ad52b9a5a03f00c0fff12ef915335feb98120bfb9044944259864c4201bb88d0b9282c619f25458aac1f12b2d0e8edbf5e61eb17b70c45787c1385c2375fb7b9ed5a35d7167560325fca68a09fbdbdf9358a69eb3574a8609321907e111b13652c3093507ea1118667265c5091f685626259b529b34d489bb69e14e358e2ab8a7cc45158e27e555102a550c815a55002f95263b144a480417f609cc964327514a086fc6c8f4ea112591e65c2afc8f8688f812804eae878f528932ebb607d282893a9567f252814b017f86b4142ce593d1e8bbdc5636ff5f85b3c2e4948d6b0c3414373d7b644afb126e0a10bc40d4c5f19da317075f857b477107d82321a2555c67cf8d7d8456082852e9166ab2b0b284fab2e600e2d13c42899607c6b424288168469065ce6dc25b3158764826f1d489ca384a8d42495319f8ecc5132a0155b4706000feefadd645a656c0c1b8e2e91ca583d1e7b436032389262c701aa290631b5e43bf5c4be9ead817f1221f42d388c01588b1ec61f7fff7e9cd0818747638ded18eb3d6c413221c81267ffcefca71e8f89e713d14297b33de48a2f9e218ca8ad012214710350d3b68e30071afada05fe7aee630c948fb70e9c23a29d073d84907d8ec2faf7701fdae7971161b3079a6801b65a9a888d440bb0104b07197b8ac384407cff1ca18f2822f889a825ba31411d2c05b4c1a14e6f47a8e3025fb914697ba846c0195a393e40614c3c82c480af9cb01d4d1ece3eb3b56df4f8625c0f967c9f0ffa3101ad50ea88b3a03b47098dac85350601396c538566eff69e1cedc7a6391de944eb71bfd1eef89e133d095246a378ece8519fb35146a383f58c38760336d1fe32828a580f260f4dfe4820750262ec143ca1e307e20f4d37baf47becfa8754d1f6ffa784efdf2144af69b902773b0213546ebb224c7fda8626e27e14fb5c91fdab047429ae9385b3a025c29b1819b6c74ed138a267d8def09d9a018cbf73a02032a5c31e56c89f99b6fa9af08dde977d4d34f84cb64134f8ff942dca83886859d344cc61aa4b1c8eb8bd8f3a697f750896bd06860847648e9860ae21078b6ccdc1458421eeae201d51176bdac8e7950c589e23d7e711682cfc8dfd2c27f87b7cd78ab19fa584055ee3536231ad04d1045d86e7112b2711fb24b630dfc08fc7447e1945b1b94ff92cc87f3e22fd6e3ce607b3e871622c1dc42cdff9839523ef20a586378ca9660a20a96a5b84eae8e84447fb64d16bf73728c1dae7f72daa9784b2b765717fe15b9d00968f8d47aca82660b7230ebcc6e6474126eabffe8e9f4582b44d55d366c2b902c59b070ffb8dadfb0a6bbfb91b8c3fd9f9813f479df93de247a08f5eff23d0477d7f817533123a02f33801fcf7c2e5ff2d4cc5621fc7a1faf17d69f2ec08c0d8dd0a7b0857f6ae1d6a8b600dee16e533198ba1a40673bc32395a6373056781eb2b06a63a206e1016ccef4b120b138aa2af8283b7c4d120f04b28df250706fc608ac7723ef431e1743f8735c03524ffe51580871e6136f2c71f326693e19d0fea2f0dd776801eac5639dafb2f3782ebdae2e0c7c3ee234a2c0669c66da76359a011cce1deb51dacfb3d5632d42a24f978c571fd3eb0195ce961e1370d3316db575b736c3208a6defc5f6f22a09d7f54d69cbeebdf9be03b0f0b9dfab449130948a49fd0923c4044a7b60b68c110a69a28dfc3e622088f31e611ae1a87562fad618eff9df9cf815b50fd9864e662778b2ec2cdfff2ff2ec00025bc84ff36fb98a5a28cd2cc242a24b367416210fc7ab6173685ee8a726281c879a24d05ed3c5c98dbaeef172e606d8b7cf0c3cdfe09c23f47ecfdcff71eec38f17777926ef9dd7bba4f934199590ba424ced10f1ef169700a4e3f148a24c28bffc47bf66a1dacee33963d9b93f956642cec3826517d734bfcc4aaf69c4fa486f46fbe1d0583cf04def9c70e2f7218801eca9bb9805feb879be1641eeac30ef74b7feb7ecffdb2e503a60d4245b37c60370bd8f91d44b0842ed1872c430ee2085f422e35f405a5f6fbce7eb8f097740fbc9034b9a7fa5125059ba61fb50f4aa947a5f6603731c73fd5ec9d64657f495106ef848749a1f6c3f63b5b4fb744004b2626f495da1e3dbc2311351a724105b206ad167d7d72f0d4d3ba28e85b665bbfc416f0468ae0743a1dff34e5f9bbd3e9b4f031cc395841f51a12c6a309f12dfeae0f4a46ad7fdf0aed1bcac016450746f841d008afc15fddeffcb8d3d8fbfae581ae1e3d66d894c54e9ab153fd3a42ea8973bed3d827b76c6d65421a368eed72514f8b6df5f8ff060000ffffdb95edb4b81e0000") - mewn.AddAsset(".", "../runtime/js/runtime/init.js", "1f8b08000000000000ff548ccd4ec3301084cfec53cc3189680c1c90a04282231247242e488b9b6e89a96347b64b404ddf1dd96d0ff867359a99fd5443601c0f9f049f14cd988ba1a098195c715d149744cd39c8dd0f7552ac72a2f2cb3b47bbcab41a3433abfcdf992f59959b37007aed05d67cf669923cb1097a90c9872d363e6092d5c29aad408f63a4aaabf1221a4f2ef5defde2e6eafa6e310689e212358a5483afd81b9720f15b4234dedde3168d22524d4368f0ec4c32da9a2811a917bc696323c2ce253308a1741e471df480fd66e7ba64bc3ba0d3d6ae74b7a58c3adb85559da31a7bba988c5bfba99d32b4e5f67f614907a2c1af77565af9197d48110f05b2fc0b0000ffffacb36d8089010000") - mewn.AddAsset(".", "./linuxdb.yaml", "1f8b08000000000000ffec584b6fdc3618bce7577ca72d6083766bf7a45bd1b43934690218e9a19786a23e7319f121f0617b8bfef8822b5994ad7d68b55c6c0b644ffb91e20c879c91281142de54c2792bcae085d1ae7803506129a88eff00445574f5bab428913a746d67bcf49e06e99f4b004d1516f0368d88bf07b44e185d3c5fde7770c6ba3e6694a2ba2a60c119ab826aba762083a21fd758c32d55ae80453bb90ef8b9bdbf10807453e28c0d5a0196289b023eade580d0ce5329e151f8257c71a132401b4f38fabeab0c4256049d43ed05955f80ea0abc5d01e554e80d844dcd0933fa5ef0a37813cc7e4adda8a95c2c5809c4bd87a5f78d2baeaf2b2cafb4a9d09960195e31a3ae1dfad0fcf5c3cdd513fc03ebc995d42d81c062011be74a561021beba6d5395a2b4d40a1c6d5cdfb141951425f735b925153e1cb59443a0fd8b2945f988652dfc4d1cf4e3d5f739f8c788e3898432681f52fcda7a5afcb626add5f43941ed89df7d90f24504070d1b6278b13b86837dbfd8baef359522a98e5516cdbf5129e0ddef9fafdf0b1d9e7669bf186b3f91d4865a6b7c12dbd659e47e5a431d26f8b462ff36560c9e26eb328bd43f7ba4b3ea93719995d083fdec9bb2e85cef237c78863bab5894a8507b6a57496d6acb2237c1c1c7bbff465e359a81836395e7d6f4f697047676910f46544964acb288fcc388eaf83bd17127baa7b271a43fc95187f1c98b2739c4bda03ad1e1ed05c7d413d7a615f4f5e56dbb14b3a807e3f7eb1b1c7de633be0619d332d4deb8e4e3b6cee2e49f51fb8f77706e33afcf96aba0fa66ce18619797a0688d277b2f191236358f08e444f61ef161839274bbd7bf7c0c2f382e03074660bcfe3dc4d41464207d0d34a6bec7ca589a92d0d65992f06b82da93819d8fad6f39d8c237a6fabf39fc269bc56f769153cb96c9e1b1cae2ef9f2c5b66b8cfc322ce28ffb7a98632453590bb387292d3a33b675274a3f3dfe113856ed4942f4683c5dcf5bd28fa65ee72fafaf61087cfa44900633245f5576a4d3275d790c5d71f5aac1cd6bed865ede1fbc6965de3f15c3690d9d65954be4b5073e5cd0d69704273589960c1ad9c47f59d8bfb5e538e712329477be4a3681ec3a46c1e02bdf7bda2382c83a8d072ec464e8d203934821d4b1afd8ae9df000000ffff0d235ac80f190000") + mewn.AddAsset(".", "../runtime/assets/bridge.js", "1f8b08000000000000ffac597b73e2ba92ff1b3e85ee9c9a821c12ccfb79726a8d2184244078e5c1dd5b596137b6882d1b4b606026df7d4bb601934966e66c2d332496d4ea6efdd44f47fa338e5e50f079091f5ec2a7f877f4dd9f9090f4f2f2825e922f67fed38bbf227d170b82f67fa4f0e945122b92f82ff604d349c1ed0cc5bfbfbc48e2fbdf2f2fe72f92ff4fec40283e3600994437b807e2279abbd802cf765fd1dc769107b30b93bc02c28ec3e249f50cdd014632e5864db72897c9562f1c1718501eff538a4b7fa2053308e508d81a5c466c5a4325f4a7148fcf5754e5c4a68850c29367e85b3c2649a8e1124d0764cf16a0f278cc2354b3bdb48789c966c1d2a5a08cb9a0da9482cafb6b704dbcad21ba32cdf3e8ca9858e0d6503e9311d31e9b0cef6a28e1b19a2499b68a4dc366bc962f64b34529609d1074e16662d311c71c8e7c559bce895e43dfde7c763063b6fa0a3c42804d7386d5d7e38c1de8763deeded5e2b1582cf19746d648353163975ffc335d1cb4bd0889bffcfd1b4417aa4d3950fe7bc49c7013befcfd28964380ff9234b2fefbaf99fb5b0c4c1b6b84eacc219482fbe5ef77bb89f6f9560b18c37a209d13aafb36245002aa856c223f1311d494d128002dfd09ef6f8ecd88b8a8da9c6c40ab73dba965ea26cc792d53f788c68d5a3693f95a377c330e9e8564ddb55754abb9fa0c2733e7e25fba74569fdb945fccb145cc6d8d61ca2e18b8645ed708738479519b427d7741a8069b5ad5ffbc7da6d8fe76be395813b8d572196783f2196753e7b0e117d8243aada94039b8a1a2b90c58f5c3795c3031276b38a85e00ab3eb35d0ddc0b176b64c56a59b0ea167675426bc5af08afb88d3291d35da8b669bbb53fe6f3797d666f2e988135dbab659d0d12df40216713dd412cac436de59a490d735cf3879243f5fa0c332815cec943a33ff432b76ddd966559ee8d26466ba2cbb2ac54c478a5c85d31b8776672594c2caf1add87d644fe879f56431e7cf4bc1f8b6f53f6bae251cced7fef3fd1b122eb1df17d4ff311bda0fba7ba5e35068fb7caa21400921f8ec66657be239d65d3786d3764e6dd2cee33edcd7da9372c3c56a51d5f0c9b5de37152ccb4ab7a11ae9fd6b369f5a9d5a96ea66375393573d8d46eed6271e0d9ca7a3ad1778660ccaa37c3d6d564d4859e09f0b85cc81363926928f83adfe1c4abee6ec7d57c6ad7cee406b759c3928ad757a9c56e7a539a0fa0a46e9f5aa9855e7d2adb556fb3da9a9dcebc305ee71ef2a959df6d3dd17945f306d2eda0d36ef672d22855e85b0fcac3d39d34521b744e669bc970d9696cef25a3df6b55dcca38356b76cd41b5723b32cbcf1563b77046957576c99b4665559c576e074edb99d3fb7b63d9aedc80adf7f2e5eb6515702fb7191a1d4fc66dbaf658e52a3b3236cbdba23dcb71ef9964afe46eb3e03eb1674e15e9a6458633b3a04e5ce5d1a05de56e7805d613ec9e66b36275705b7894477d669568ee319b2a288d71eec6e2bb4169cedc597b351b4abdab9996d38bcfd9723555f4a476eb1adfb2ebc5b302bcace8eed324cf37d8ed29e5e74dffe186771605a935dc75b5e97ca7e6b38693aaa8cd12b43b773a76a7cfd5d5349b336496c9afe78d6655c996b3faa8d8b776e5bebadec877830e2dac2ac361a3d15019a93e3ee63cbb5f25ce9d3edf39cfa6aeebf9e9501bf6274ae5765c1edc2d97f9c7ea6da3d89869570f7aa19aabbe6a9e534a2df1947615a5d7d016a9deb6977dac548ac3ad24dfe59b057930630f0f056a2ba42b2995fcebf67959c93c994df979c05d6cf64973670fe56bd3e68f666599e38bf5b3d9d7553d2b57162dd999e29492298d1b9abccb0dd6196f95cd76a4ddb4bfbd19945a5e1b76b9fbdcac72df19b859c3f3a83c65f2c6930b13f9b9bf7d9a6cbad2c629f16b9916da13ebbeddad0e7315fb61a32b199076839b9b4ea9b935b6d3ac5b5eed8603c3511fcb9bf27a8c1f47bbdb51bb84c129975f5d7bdc32f3934a76357ac09331d75b9dde5ca980b3490d0a57d591e398d7ed4aa1f55ab20a43795995c677affd86bbd9c24ad3a6c6f5badd71b24f4ff3ab6d7e9a5f73af37336fdba4495337a96a6eed7972e35a3716e56bba3347d9ebe26ba35095a76badad5ce9a471bf2c5597f3a77b37bf4da5b6c4bccaf47b8561058665e6c8ecce99568bbda5fc58e47896550bebd7a955c226e0856a74bde7b1d6b91b0cc65e2bd77f2864b3d36ef571c79b8bfba599cda9b8414a7ad399dc5a4dad30c93ef5b4c1665ab8eb3c0d8ad2d82ddc973b55feac5eb9cddb7c10c5ccabf1eb6835b014e52c1a805d7000f31ab5c3a7e8da21350459e3f3d4e3e7fa6f7e32636407b51c589f1387c939429e4de77fb6e1b410f8e6d8446873016ba09c053932cc67e92258fbf4150c82fc554b17c042cc368986b88b2973b00b94efb35b98b6f2ad52b9a5a03f00c0fff12ef915335feb98120bfb9044944259864c4201bb88d0b9282c619f25458aac1f12b2d0e8edbf5e61eb17b70c45787c1385c2375fb7b9ed5a35d7167560325fca68a09fbdbdf9358a69eb3574a8609321907e111b13652c3093507ea1118667265c5091f685626259b529b34d489bb69e14e358e2ab8a7cc45158e27e555102a550c815a55002f95263b144a480417f609cc964327514a086fc6c8f4ea112591e65c2afc8f8688f812804eae878f528932ebb607d282893a9567f252814b017f86b4142ce593d1e8bbdc5636ff5f85b3c2e4948d6b0c3414373d7b644afb126e0a10bc40d4c5f19da317075f857b477107d82321a2555c67cf8d7d8456082852e9166ab2b0b284fab2e600e2d13c42899607c6b424288168469065ce6dc25b3158764826f1d489ca384a8d42495319f8ecc5132a0155b4706000feefadd645a656c0c1b8e2e91ca583d1e7b436032389262c701aa290631b5e43bf5c4be9ead817f1221f42d388c01588b1ec61f7fff7e9cd0818747638ded18eb3d6c413221c81267ffcefca71e8f89e713d14297b33de48a2f9e218ca8ad012214710350d3b68e30071afada05fe7aee630c948fb70e9c23a29d073d84907d8ec2faf7701fdae7971161b3079a6801b65a9a888d440bb0104b07197b8ac384407cff1ca18f2822f889a825ba31411d2c05b4c1a14e6f47a8e3025fb914697ba846c0195a393e40614c3c82c480af9cb01d4d1ece3eb3b56df4f8625c0f967c9f0ffa3101ad50ea88b3a03b47098dac85350601396c538566eff69e1cedc7a6391de944eb71bfd1eef89e133d095246a378ece8519fb35146a383f58c38760336d1fe32828a580f260f4dfe4820750262ec143ca1e307e20f4d37baf47becfa8754d1f6ffa784efdf2144af69b902773b0213546ebb224c7fda8626e27e14fb5c91fdab047429ae9385b3a025c29b1819b6c74ed138a267d8def09d9a018cbf73a02032a5c31e56c89f99b6fa9af08dde977d4d34f84cb64134f8ff942dca83886859d344cc61aa4b1c8eb8bd8f3a697f750896bd06860847648e9860ae21078b6ccdc1458421eeae201d51176bdac8e7950c589e23d7e711682cfc8dfd2c27f87b7cd78ab19fa584055ee3536231ad04d1045d86e7112b2711fb24b630dfc08fc7447e1945b1b94ff92cc87f3e22fd6e3ce607b3e871622c1dc42cdff9839523ef20a586378ca9660a20a96a5b84eae8e84447fb64d16bf73728c1dae7f72daa9784b2b765717fe15b9d00968f8d47aca82660b7230ebcc6e6474126eabffe8e9f4582b44d55d366c2b902c59b070ffb8dadfb0a6bbfb91b8c3fd9f9813f479df93de247a08f5eff23d0477d7f817533123a02f33801fcf7c2e5ff2d4cc5621fc7a1faf17d69f2ec08c0d8dd0a7b0857f6ae1d6a8b600dee16e533198ba1a40673bc32395a6373056781eb2b06a63a206e1016ccef4b120b138aa2af8283b7c4d120f04b28df250706fc608ac7723ef431e1743f8735c03524ffe51580871e6136f2c71f326693e19d0fea2f0dd776801eac5639dafb2f3782ebdae2e0c7c3ee234a2c0669c66da76359a011cce1deb51dacfb3d5632d42a24f978c571fd3eb0195ce961e1370d3316db575b736c3208a6defc5f6f22a09d7f54d69cbeebdf9be03b0f0b9dfab449130948a49fd0923c4044a7b60b68c110a69a28dfc3e622088f31e611ae1a87562fad618eff9df9cf815b50fd9864e662778b2ec2cdfff2ff2ec00025bc84ff36fb98a5a28cd2cc242a24b367416210fc7ab6173685ee8a726281c879a24d05ed3c5c98dbaeef172e606d8b7cf0c3cdfe09c23f47ecfdcff71eec38f17777926ef9dd7bba4f934199590ba424ced10f1ef169700a4e3f148a24c28bffc47bf66a1dacee33963d9b93f956642cec3826517d734bfcc4aaf69c4fa486f46fbe1d0583cf04def9c70e2f7218801eca9bb9805feb879be1641eeac30ef74b7feb7ecffdb2e503a60d4245b37c60370bd8f91d44b0842ed1872c430ee2085f422e35f405a5f6fbce7eb8f097740fbc9034b9a7fa5125059ba61fb50f4aa947a5f6603731c73fd5ec9d64657f495106ef848749a1f6c3f63b5b4fb744004b2626f495da1e3dbc2311351a724105b206ad167d7d72f0d4d3ba28e85b665bbfc416f0468ae0743a1dff34e5f9bbd3e9b4f031cc395841f51a12c6a309f12dfeae0f4a46ad7fdf0aed1bcac016450746f841d008afc15fddeffcb8d3d8fbfae581ae1e3d66d894c54e9ab153fd3a42ea8973bed3d827b76c6d65421a368eed72514f8b6df5f8ff060000ffffdb95edb4b81e0000") + mewn.AddAsset(".", "../runtime/js/runtime/init.js", "1f8b08000000000000ff548ccd4ec3301084cfec53cc3189680c1c90a04282231247242e488b9b6e89a96347b64b404ddf1dd96d0ff867359a99fd5443601c0f9f049f14cd988ba1a098195c715d149744cd39c8dd0f7552ac72a2f2cb3b47bbcab41a3433abfcdf992f59959b37007aed05d67cf669923cb1097a90c9872d363e6092d5c29aad408f63a4aaabf1221a4f2ef5defde2e6eafa6e310689e212358a5483afd81b9720f15b4234dedde3168d22524d4368f0ec4c32da9a2811a917bc696323c2ce253308a1741e471df480fd66e7ba64bc3ba0d3d6ae74b7a58c3adb85559da31a7bba988c5bfba99d32b4e5f67f614907a2c1af77565af9197d48110f05b2fc0b0000ffffacb36d8089010000") + mewn.AddAsset(".", "./linuxdb.yaml", "1f8b08000000000000ffec584d6fdc3610bde757cc690bd8a0ddda3de956346d0e4d9a00467ae8a5a1a83197113f047e38dea23fbee04a16656b3fb45a2ed605baa71d527c8f8f7c33224508795309e7ad28831746bbe20d4085a5a03afe031055d1c5ebd0a244ead0b59df1d17b1aa47f0a01345558c0db3422fe1ed03a6174f1f478dfc119ebfa98518aeaaa800567ac0aaae9da810c827e5c630db754b90216ede43ae0a7f6fe4100d24d893336680558a26c0af8b49603423b4fa5846fc22fe18b0b9501da78c2d1f75d6510b222e81c6a2fa8fc025457e0ed0a28a7426f206c6a4e98d1f7821fc59b60f653ea464de562c14a20ee3d2cbd6f5c717d5d6179a54d85ce04cbf08a1975edd087e6af1f6eae1ee11f584faea46e0904160bd83857b28208f1d56d9baa14a5a556e068e3fa8e0daaa428b9afc92da9f0e1a8a51c02ed5f4c29ca6f58d6c2dfc4413f5e7d9f837f8c389e482883f621a55f1b4f4bbfad99d66afa9ca0f6a4df7d90f2590a0e1a36a4e1c5ee341cecfbc5d67dafa91449758cb268fe8d4a01ef7eff7cfd5ee8f0b84bfbc558fb89a436d45ae393d836ce22f7d31aea30c1a715fbb7b162f036598759a4fed9239d559f8ccbac841eec67df9445e77a1fe1c313dc59c5a24485da53bb4a6a535b16b9090e3edebd8e7cd568060e8e519ed2f4f697047676910f465449648cb288fcc388eaf84a74dc89eeb16c1ce94f72d4617cf3e2490e71cfa84e74787bc631f5c4b569057d7d79db2ec52ceac1f8fdfa06479ff98c2f41c6b40cb5372ef9b88db338f967d4fee31d9cdbccebb3e52aa8be993346d8e525285ae3c9ee2543c2a6e611819cc8de233e6c50926ef7facbc7f081e372e0c01418af7f0f31350b3290be041a53df63652c4d99d0c65932e1d704b5270776beb6fecf832d7c63aaff9ac36fb259fc661739b56c991c1ea32cfefec9b265863a0f8b38a3fcdfa61aca14d540eee2c8494e8fee9c49d18dce5fe113856ed4942f4683c5dcf5bd28fa65ee72fafaf61087cfa44900633245f5576a4d3275d790c5d71f5aac1cd6bed865ede17d63cbae51cbccfa9afc2c7ddba65c396c5e814e1ecf9f83ed6ce32c0adf25a8b9f2e616a3e084e6b032c1825b398fea3b17fd5d538ed1b094a33df2953b8f61520d3a047aeffda938acd6a042cbb11b39b5d490434b4dc79246bf60fa370000ffff8eb09c3df7190000") } diff --git a/cmd/fs.go b/cmd/fs.go index d0ceae7c..36109e8f 100644 --- a/cmd/fs.go +++ b/cmd/fs.go @@ -132,6 +132,16 @@ func (fs *FSHelper) LocalDir(dir string) (*Dir, error) { }, err } +// LoadRelativeFile loads the given file relative to the caller's directory +func (fs *FSHelper) LoadRelativeFile(relativePath string) ([]byte, error) { + _, filename, _, _ := runtime.Caller(0) + fullPath, err := filepath.Abs(filepath.Join(path.Dir(filename), relativePath)) + if err != nil { + return nil, err + } + return ioutil.ReadFile(fullPath) +} + // GetSubdirs will return a list of FQPs to subdirectories in the given directory func (d *Dir) GetSubdirs() (map[string]string, error) { diff --git a/cmd/linux.go b/cmd/linux.go index 36d49b18..8353c6b0 100644 --- a/cmd/linux.go +++ b/cmd/linux.go @@ -43,8 +43,16 @@ const ( Kali // Neon distribution Neon + // ArcoLinux distribution + ArcoLinux // Manjaro distribution Manjaro + // ManjaroARM distribution + ManjaroARM + // Deepin distribution + Deepin + // Raspbian distribution + Raspbian ) // DistroInfo contains all the information relating to a linux distribution @@ -100,6 +108,7 @@ func parseOsRelease(osRelease string) *DistroInfo { version = strings.Trim(splitLine[1], "\"") } } + // Check distro name against list of distros switch osID { case "fedora": @@ -128,8 +137,16 @@ func parseOsRelease(osRelease string) *DistroInfo { result.Distribution = Kali case "neon": result.Distribution = Neon + case "arcolinux": + result.Distribution = ArcoLinux case "manjaro": result.Distribution = Manjaro + case "manjaro-arm": + result.Distribution = ManjaroARM + case "deepin": + result.Distribution = Deepin + case "raspbian": + result.Distribution = Raspbian default: result.Distribution = Unknown } diff --git a/cmd/linuxdb.go b/cmd/linuxdb.go index 58892f5f..fbea6b68 100644 --- a/cmd/linuxdb.go +++ b/cmd/linuxdb.go @@ -3,7 +3,6 @@ package cmd import ( "log" - "github.com/leaanthony/mewn" "gopkg.in/yaml.v3" ) @@ -79,11 +78,14 @@ func (l *LinuxDB) GetDistro(distro string) *Distribution { // NewLinuxDB creates a new LinuxDB instance from the bundled // linuxdb.yaml file. func NewLinuxDB() *LinuxDB { - data := mewn.Bytes("./linuxdb.yaml") + data, err := fs.LoadRelativeFile("./linuxdb.yaml") + if err != nil { + log.Fatal("Could not load linuxdb.yaml") + } result := LinuxDB{ Distributions: make(map[string]*Distribution), } - err := result.ImportData(data) + err = result.ImportData(data) if err != nil { log.Fatal(err) } diff --git a/cmd/linuxdb.yaml b/cmd/linuxdb.yaml index 8745ae37..3f1c49cf 100644 --- a/cmd/linuxdb.yaml +++ b/cmd/linuxdb.yaml @@ -82,6 +82,15 @@ distributions: gccversioncommand: *gccdumpfullversion programs: *debiandefaultprograms libraries: *debiandefaultlibraries + deepin: + id: deepin + releases: + default: + version: default + name: Deepin + gccversioncommand: *gccdumpfullversion + programs: *debiandefaultprograms + libraries: *debiandefaultlibraries void: id: void releases: @@ -158,6 +167,15 @@ distributions: help: Please install with `sudo pacman -S gtk3` and try again - name: webkit2gtk help: Please install with `sudo pacman -S webkit2gtk` and try again + arcolinux: + id: arcolinux + releases: + default: + version: default + name: ArcoLinux + gccversioncommand: *gccdumpversion + programs: *archdefaultprograms + libraries: *archdefaultlibraries manjaro: id: manjaro releases: @@ -167,6 +185,15 @@ distributions: gccversioncommand: *gccdumpversion programs: *archdefaultprograms libraries: *archdefaultlibraries + manjaro-arm: + id: manjaro-arm + releases: + default: + version: default + name: Manjaro-ARM + gccversioncommand: *gccdumpversion + programs: *archdefaultprograms + libraries: *archdefaultlibraries gentoo: id: gentoo releases: @@ -185,4 +212,14 @@ distributions: - name: gtk+:3 help: Please install with `sudo emerge gtk+:3` and try again - name: webkit-gtk - help: Please install with `sudo emerge webkit-gtk` and try again \ No newline at end of file + help: Please install with `sudo emerge webkit-gtk` and try again + + raspbian: + id: raspbian + releases: + default: + version: default + name: Raspbian + gccversioncommand: *gccdumpfullversion + programs: *debiandefaultprograms + libraries: *debiandefaultlibraries diff --git a/cmd/system.go b/cmd/system.go index 85ae394b..d503f53c 100644 --- a/cmd/system.go +++ b/cmd/system.go @@ -274,9 +274,9 @@ func CheckDependencies(logger *Logger) (bool, error) { distroInfo := GetLinuxDistroInfo() switch distroInfo.Distribution { - case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon: + case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon, Deepin, Raspbian: libraryChecker = DpkgInstalled - case Arch, Manjaro: + case Arch, ArcoLinux, Manjaro, ManjaroARM: libraryChecker = PacmanInstalled case CentOS, Fedora: libraryChecker = RpmInstalled diff --git a/cmd/templates/angular-template/frontend/package.json.template b/cmd/templates/angular-template/frontend/package.json.template index 640bcea4..7b2ae827 100644 --- a/cmd/templates/angular-template/frontend/package.json.template +++ b/cmd/templates/angular-template/frontend/package.json.template @@ -3,7 +3,7 @@ "version": "0.0.0", "scripts": { "ng": "npx ng", - "start": "npx ng serve --poll=2000", + "start": "npx ng serve --poll=2000 --host=0.0.0.0", "build": "npx ng build --single-bundle true --output-hashing none --prod --bundle-styles false", "test": "npx ng test", "lint": "npx ng lint", diff --git a/cmd/templates/vuebasic/frontend/babel.config.js b/cmd/templates/vuebasic/frontend/babel.config.js index ba179669..a6106c48 100644 --- a/cmd/templates/vuebasic/frontend/babel.config.js +++ b/cmd/templates/vuebasic/frontend/babel.config.js @@ -1,5 +1,5 @@ module.exports = { presets: [ - '@vue/app' + [ '@vue/app', { useBuiltIns: 'entry' } ] ] } diff --git a/cmd/templates/vuebasic/frontend/package.json.template b/cmd/templates/vuebasic/frontend/package.json.template index 95c1db96..271f969b 100644 --- a/cmd/templates/vuebasic/frontend/package.json.template +++ b/cmd/templates/vuebasic/frontend/package.json.template @@ -8,7 +8,8 @@ "lint": "vue-cli-service lint" }, "dependencies": { - "core-js": "^2.6.4", + "core-js": "^3.6.1", + "regenerator-runtime": "^0.13.3", "vue": "^2.5.22", "@wailsapp/runtime": "^1.0.0" }, diff --git a/cmd/templates/vuebasic/frontend/src/main.js b/cmd/templates/vuebasic/frontend/src/main.js index 739f1a3f..ce05741b 100644 --- a/cmd/templates/vuebasic/frontend/src/main.js +++ b/cmd/templates/vuebasic/frontend/src/main.js @@ -1,3 +1,5 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; import Vue from 'vue'; import App from './App.vue'; diff --git a/cmd/templates/vuebasic/frontend/vue.config.js b/cmd/templates/vuebasic/frontend/vue.config.js index 471d578f..a2691b1f 100644 --- a/cmd/templates/vuebasic/frontend/vue.config.js +++ b/cmd/templates/vuebasic/frontend/vue.config.js @@ -37,7 +37,6 @@ module.exports = { } }, devServer: { - disableHostCheck: true, - host: "localhost" + disableHostCheck: true } }; diff --git a/cmd/templates/vuetify-basic/frontend/babel.config.js b/cmd/templates/vuetify-basic/frontend/babel.config.js index ba179669..a6106c48 100644 --- a/cmd/templates/vuetify-basic/frontend/babel.config.js +++ b/cmd/templates/vuetify-basic/frontend/babel.config.js @@ -1,5 +1,5 @@ module.exports = { presets: [ - '@vue/app' + [ '@vue/app', { useBuiltIns: 'entry' } ] ] } diff --git a/cmd/templates/vuetify-basic/frontend/package.json.template b/cmd/templates/vuetify-basic/frontend/package.json.template index 42555b90..d737c25c 100644 --- a/cmd/templates/vuetify-basic/frontend/package.json.template +++ b/cmd/templates/vuetify-basic/frontend/package.json.template @@ -8,8 +8,8 @@ "lint": "vue-cli-service lint" }, "dependencies": { - "babel-polyfill": "^6.26.0", - "core-js": "^2.6.4", + "core-js": "^3.6.1", + "regenerator-runtime": "^0.13.3", "material-design-icons-iconfont": "^5.0.1", "vue": "^2.5.22", "vuetify": "^1.5.14", @@ -50,4 +50,4 @@ "last 2 versions", "not ie <= 8" ] -} \ No newline at end of file +} diff --git a/cmd/templates/vuetify-basic/frontend/src/main.js b/cmd/templates/vuetify-basic/frontend/src/main.js index de57f6b7..bbe42e11 100644 --- a/cmd/templates/vuetify-basic/frontend/src/main.js +++ b/cmd/templates/vuetify-basic/frontend/src/main.js @@ -1,4 +1,5 @@ -import 'babel-polyfill'; +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; import Vue from 'vue'; // Setup Vuetify diff --git a/cmd/templates/vuetify-basic/frontend/vue.config.js b/cmd/templates/vuetify-basic/frontend/vue.config.js index 471d578f..a2691b1f 100644 --- a/cmd/templates/vuetify-basic/frontend/vue.config.js +++ b/cmd/templates/vuetify-basic/frontend/vue.config.js @@ -37,7 +37,6 @@ module.exports = { } }, devServer: { - disableHostCheck: true, - host: "localhost" + disableHostCheck: true } }; diff --git a/cmd/templates/vuetify-basic/template.json b/cmd/templates/vuetify-basic/template.json index 0df81aa0..b58b5b04 100755 --- a/cmd/templates/vuetify-basic/template.json +++ b/cmd/templates/vuetify-basic/template.json @@ -1,8 +1,8 @@ { - "name": "Vuetify Basic", + "name": "Vuetify1.5/Webpack Basic", "version": "1.0.0", - "shortdescription": "Vuetify + Webpack", - "description": "Basic template using Vuetify and bundled using Webpack", + "shortdescription": "A basic Vuetify1.5/Webpack4 template", + "description": "Basic template using Vuetify v1.5 and bundled using Webpack", "install": "npm install", "build": "npm run build", "author": "lea ", @@ -11,4 +11,4 @@ "serve": "npm run serve", "bridge": "src", "wailsdir": "" -} \ No newline at end of file +} diff --git a/cmd/templates/vuetify2-basic/.jshint b/cmd/templates/vuetify2-basic/.jshint new file mode 100644 index 00000000..0557edf1 --- /dev/null +++ b/cmd/templates/vuetify2-basic/.jshint @@ -0,0 +1,3 @@ +{ + "esversion": 6 +} \ No newline at end of file diff --git a/cmd/templates/vuetify2-basic/frontend/.gitignore b/cmd/templates/vuetify2-basic/frontend/.gitignore new file mode 100644 index 00000000..185e6631 --- /dev/null +++ b/cmd/templates/vuetify2-basic/frontend/.gitignore @@ -0,0 +1,21 @@ +.DS_Store +node_modules +/dist + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* diff --git a/cmd/templates/vuetify2-basic/frontend/babel.config.js b/cmd/templates/vuetify2-basic/frontend/babel.config.js new file mode 100644 index 00000000..57e6d0a5 --- /dev/null +++ b/cmd/templates/vuetify2-basic/frontend/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + [ '@vue/app', { useBuiltIns: 'entry' } ] + ] +}; diff --git a/cmd/templates/vuetify2-basic/frontend/package.json.template b/cmd/templates/vuetify2-basic/frontend/package.json.template new file mode 100644 index 00000000..89f096e8 --- /dev/null +++ b/cmd/templates/vuetify2-basic/frontend/package.json.template @@ -0,0 +1,53 @@ +{ + "name": "{{.NPMProjectName}}", + "author": "{{.Author.Name}}<{{.Author.Email}}>", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "core-js": "^3.6.1", + "regenerator-runtime": "^0.13.3", + "vue": "^2.5.22", + "vuetify": "^2.0.15", + "@wailsapp/runtime": "^1.0.0" + }, + "devDependencies": { + "@mdi/font": "^4.3.95", + "@vue/cli-plugin-babel": "^3.4.0", + "@vue/cli-plugin-eslint": "^3.4.0", + "@vue/cli-service": "^3.4.0", + "babel-eslint": "^10.0.1", + "eslint": "^5.8.0", + "eslint-plugin-vue": "^5.0.0", + "eventsource-polyfill": "^0.9.6", + "vue-template-compiler": "^2.5.21", + "webpack-hot-middleware": "^2.24.3" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "rules": {}, + "parserOptions": { + "parser": "babel-eslint" + } + }, + "postcss": { + "plugins": { + "autoprefixer": {} + } + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ] +} diff --git a/cmd/templates/vuetify2-basic/frontend/src/App.vue b/cmd/templates/vuetify2-basic/frontend/src/App.vue new file mode 100644 index 00000000..2d4a3422 --- /dev/null +++ b/cmd/templates/vuetify2-basic/frontend/src/App.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/cmd/templates/vuetify2-basic/frontend/src/assets/images/logo.png b/cmd/templates/vuetify2-basic/frontend/src/assets/images/logo.png new file mode 100644 index 00000000..31fc8249 Binary files /dev/null and b/cmd/templates/vuetify2-basic/frontend/src/assets/images/logo.png differ diff --git a/cmd/templates/vuetify2-basic/frontend/src/components/HelloWorld.vue b/cmd/templates/vuetify2-basic/frontend/src/components/HelloWorld.vue new file mode 100644 index 00000000..84708401 --- /dev/null +++ b/cmd/templates/vuetify2-basic/frontend/src/components/HelloWorld.vue @@ -0,0 +1,85 @@ + + + + + + diff --git a/cmd/templates/vuetify2-basic/frontend/src/main.js b/cmd/templates/vuetify2-basic/frontend/src/main.js new file mode 100644 index 00000000..245eb1e0 --- /dev/null +++ b/cmd/templates/vuetify2-basic/frontend/src/main.js @@ -0,0 +1,29 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; +import '@mdi/font/css/materialdesignicons.css'; +import Vue from 'vue'; +import Vuetify from 'vuetify'; +import 'vuetify/dist/vuetify.min.css'; + +Vue.use(Vuetify); + +import App from './App.vue'; + +Vue.config.productionTip = false; +Vue.config.devtools = true; + +import Wails from '@wailsapp/runtime'; + +Wails.Init(() => { + new Vue({ + vuetify: new Vuetify({ + icons: { + iconfont: 'mdi' + }, + theme: { + dark: true + } + }), + render: h => h(App) + }).$mount('#app'); +}); diff --git a/cmd/templates/vuetify2-basic/frontend/vue.config.js b/cmd/templates/vuetify2-basic/frontend/vue.config.js new file mode 100644 index 00000000..8dcf3e33 --- /dev/null +++ b/cmd/templates/vuetify2-basic/frontend/vue.config.js @@ -0,0 +1,42 @@ +let cssConfig = {}; + +if (process.env.NODE_ENV == 'production') { + cssConfig = { + extract: { + filename: '[name].css', + chunkFilename: '[name].css' + } + }; +} + +module.exports = { + chainWebpack: config => { + let limit = 9999999999999999; + config.module + .rule('images') + .test(/\.(png|gif|jpg)(\?.*)?$/i) + .use('url-loader') + .loader('url-loader') + .tap(options => Object.assign(options, { limit: limit })); + config.module + .rule('fonts') + .test(/\.(woff2?|eot|ttf|otf|svg)(\?.*)?$/i) + .use('url-loader') + .loader('url-loader') + .options({ + limit: limit + }); + }, + css: cssConfig, + configureWebpack: { + output: { + filename: '[name].js' + }, + optimization: { + splitChunks: false + } + }, + devServer: { + disableHostCheck: true + } +}; diff --git a/cmd/templates/vuetify2-basic/go.mod.template b/cmd/templates/vuetify2-basic/go.mod.template new file mode 100644 index 00000000..78038106 --- /dev/null +++ b/cmd/templates/vuetify2-basic/go.mod.template @@ -0,0 +1,5 @@ +module {{.BinaryName}} + +require ( + github.com/wailsapp/wails {{.WailsVersion}} +) \ No newline at end of file diff --git a/cmd/templates/vuetify2-basic/main.go.template b/cmd/templates/vuetify2-basic/main.go.template new file mode 100644 index 00000000..e2262bd1 --- /dev/null +++ b/cmd/templates/vuetify2-basic/main.go.template @@ -0,0 +1,27 @@ +package main + +import ( + "github.com/leaanthony/mewn" + "github.com/wailsapp/wails" +) + +func basic() string { + return "Hello World!" +} + +func main() { + + js := mewn.String("./frontend/dist/app.js") + css := mewn.String("./frontend/dist/app.css") + + app := wails.CreateApp(&wails.AppConfig{ + Width: 1024, + Height: 768, + Title: "{{.Name}}", + JS: js, + CSS: css, + Colour: "#131313", + }) + app.Bind(basic) + app.Run() +} diff --git a/cmd/templates/vuetify2-basic/template.json b/cmd/templates/vuetify2-basic/template.json new file mode 100755 index 00000000..a33450fe --- /dev/null +++ b/cmd/templates/vuetify2-basic/template.json @@ -0,0 +1,14 @@ +{ + "name": "Vuetify2/Webpack Basic", + "version": "1.0.0", + "shortdescription": "A basic Vuetify2/Webpack4 template", + "description": "Basic template using Vuetify v2 and bundled using Webpack", + "install": "npm install", + "build": "npm run build", + "author": "Michael Hipp ", + "created": "2019-09-06", + "frontenddir": "frontend", + "serve": "npm run serve", + "bridge": "src", + "wailsdir": "" +} diff --git a/cmd/version.go b/cmd/version.go index 052146b4..fb4c26c2 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -1,4 +1,4 @@ package cmd // Version - Wails version -const Version = "v1.0.1" +const Version = "v1.0.2-pre3" diff --git a/lib/event/manager.go b/lib/event/manager.go index 4f73bea9..6020fd34 100644 --- a/lib/event/manager.go +++ b/lib/event/manager.go @@ -3,7 +3,6 @@ package event import ( "fmt" "sync" - "time" "github.com/wailsapp/wails/lib/interfaces" "github.com/wailsapp/wails/lib/logger" @@ -13,6 +12,7 @@ import ( // Manager handles and processes events type Manager struct { incomingEvents chan *messages.EventData + quitChannel chan struct{} listeners map[string][]*eventListener running bool log *logger.CustomLogger @@ -24,6 +24,7 @@ type Manager struct { func NewManager() interfaces.EventManager { return &Manager{ incomingEvents: make(chan *messages.EventData, 100), + quitChannel: make(chan struct{}, 1), listeners: make(map[string][]*eventListener), running: false, log: logger.NewCustomLogger("Events"), @@ -141,8 +142,8 @@ func (e *Manager) Start(renderer interfaces.Renderer) { } } } - default: - time.Sleep(1 * time.Millisecond) + case <-e.quitChannel: + e.running = false } } e.wg.Done() @@ -152,7 +153,7 @@ func (e *Manager) Start(renderer interfaces.Renderer) { // Shutdown is called when exiting the Application func (e *Manager) Shutdown() { e.log.Debug("Shutting Down") - e.running = false + e.quitChannel <- struct{}{} e.log.Debug("Waiting for main loop to exit") e.wg.Wait() } diff --git a/lib/ipc/manager.go b/lib/ipc/manager.go index fb1a26ad..a4170406 100644 --- a/lib/ipc/manager.go +++ b/lib/ipc/manager.go @@ -3,7 +3,6 @@ package ipc import ( "fmt" "sync" - "time" "github.com/wailsapp/wails/lib/interfaces" "github.com/wailsapp/wails/lib/logger" @@ -124,8 +123,8 @@ func (i *Manager) Start(eventManager interfaces.EventManager, bindingManager int i.log.DebugFields("Finished processing message", logger.Fields{ "1D": &incomingMessage, }) - default: - time.Sleep(1 * time.Millisecond) + case <-i.quitChannel: + i.running = false } } i.log.Debug("Stopping") @@ -175,7 +174,7 @@ func (i *Manager) SendResponse(response *ipcResponse) error { // Shutdown is called when exiting the Application func (i *Manager) Shutdown() { i.log.Debug("Shutdown called") - i.running = false + i.quitChannel <- struct{}{} i.log.Debug("Waiting of main loop shutdown") i.wg.Wait() } diff --git a/runtime/assets/bridge.js b/runtime/assets/bridge.js index 9c786221..5c2f73ee 100644 --- a/runtime/assets/bridge.js +++ b/runtime/assets/bridge.js @@ -14,7 +14,7 @@ function init() { window.wailsbridge = { reconnectOverlay: null, reconnectTimer: 300, - wsURL: 'ws://localhost:34115/bridge', + wsURL: 'ws://' + window.location.hostname + ':34115/bridge', connectionState: null, config: {}, websocket: null, diff --git a/runtime/js/runtime/init.js b/runtime/js/runtime/init.js index 8ade9904..14de1862 100644 --- a/runtime/js/runtime/init.js +++ b/runtime/js/runtime/init.js @@ -18,4 +18,4 @@ function Init(callback) { window.wails._.Init(callback); } -module.exports = Init; \ No newline at end of file +module.exports = Init;