diff --git a/files/bin/dz-common b/files/bin/dz-common index 72ec382..5ecefce 100755 --- a/files/bin/dz-common +++ b/files/bin/dz-common @@ -60,3 +60,22 @@ prompt_yn(){ return 1 fi } + +# List mods +list(){ + X=1 + C="${green}" + spaces=" " + echo "Installed mods:" + echo -e " ID Name URL Size" + echo "------------------------------------------------------------------------------------------------------------------------" + for dir in $(ls -tr ${WORKSHOP_DIR}) + do + ID=${dir} + NAME=$(grep name "${WORKSHOP_DIR}/${dir}/meta.cpp" | cut -d '"' -f2 | sed -r 's/\s+//g') + SIZE=$(du -sh "${WORKSHOP_DIR}/${dir}" | awk '{print $1}') + printf "${C}%.3d %s %.30s %s https://steamcommunity.com/sharedfiles/filedetails/?id=%s %s${default}\n" ${X} ${ID} "${NAME}" "${spaces:${#NAME}+1}" ${ID} ${SIZE} + X=$((X+1)) + done + echo +} diff --git a/server/bin/dz b/server/bin/dz index 06b8910..9532e42 100755 --- a/server/bin/dz +++ b/server/bin/dz @@ -450,9 +450,6 @@ case "${C}" in login) login "${@}" ;; - m|modupdate) - modupdate "${@}" - ;; n|rcon) rcon "${@}" ;; @@ -471,9 +468,6 @@ case "${C}" in stop) stop "${@}" ;; - u|update) - update "${@}" - ;; *) usage "$*" ;; diff --git a/web/bin/dz b/web/bin/dz index 19db892..be52d10 100755 --- a/web/bin/dz +++ b/web/bin/dz @@ -364,25 +364,6 @@ check_mod_install(){ fi } -# List mods -list(){ - X=1 - C="${green}" - spaces=" " - echo "Installed mods:" - echo -e " ID Name URL Size" - echo "------------------------------------------------------------------------------------------------------------------------" - for dir in $(ls -tr ${WORKSHOP_DIR}) - do - ID=${dir} - NAME=$(grep name "${WORKSHOP_DIR}/${dir}/meta.cpp" | cut -d '"' -f2 | sed -r 's/\s+//g') - SIZE=$(du -sh "${WORKSHOP_DIR}/${dir}" | awk '{print $1}') - printf "${C}%.3d %s %.30s %s https://steamcommunity.com/sharedfiles/filedetails/?id=%s %s${default}\n" ${X} ${ID} "${NAME}" "${spaces:${#NAME}+1}" ${ID} ${SIZE} - X=$((X+1)) - done - echo -} - # Capture the first argument and shift it off so we can pass $@ to every function C=${1} shift || { diff --git a/web/docroot/index.html b/web/docroot/index.html index ff1304e..e0122db 100644 --- a/web/docroot/index.html +++ b/web/docroot/index.html @@ -2,7 +2,7 @@ - + DayZ Docker Server diff --git a/web/docroot/package-lock.json b/web/docroot/package-lock.json index 6e3fef6..e837b46 100644 --- a/web/docroot/package-lock.json +++ b/web/docroot/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.0", "dependencies": { "@popperjs/core": "^2.11.8", + "@vueuse/core": "^10.1.2", "bootstrap": "^5.3.0", "bootstrap-icons": "^1.10.5", "pinia": "^2.1.3", @@ -396,6 +397,11 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz", + "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==" + }, "node_modules/@vitejs/plugin-vue": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", @@ -516,6 +522,89 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, + "node_modules/@vueuse/core": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.1.2.tgz", + "integrity": "sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==", + "dependencies": { + "@types/web-bluetooth": "^0.0.17", + "@vueuse/metadata": "10.1.2", + "@vueuse/shared": "10.1.2", + "vue-demi": ">=0.14.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.1.2.tgz", + "integrity": "sha512-3mc5BqN9aU2SqBeBuWE7ne4OtXHoHKggNgxZR2K+zIW4YLsy6xoZ4/9vErQs6tvoKDX6QAqm3lvsrv0mczAwIQ==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.1.2.tgz", + "integrity": "sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==", + "dependencies": { + "vue-demi": ">=0.14.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/bootstrap": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz", @@ -975,6 +1064,11 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, + "@types/web-bluetooth": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz", + "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==" + }, "@vitejs/plugin-vue": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", @@ -1086,6 +1180,46 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, + "@vueuse/core": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.1.2.tgz", + "integrity": "sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==", + "requires": { + "@types/web-bluetooth": "^0.0.17", + "@vueuse/metadata": "10.1.2", + "@vueuse/shared": "10.1.2", + "vue-demi": ">=0.14.0" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "requires": {} + } + } + }, + "@vueuse/metadata": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.1.2.tgz", + "integrity": "sha512-3mc5BqN9aU2SqBeBuWE7ne4OtXHoHKggNgxZR2K+zIW4YLsy6xoZ4/9vErQs6tvoKDX6QAqm3lvsrv0mczAwIQ==" + }, + "@vueuse/shared": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.1.2.tgz", + "integrity": "sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==", + "requires": { + "vue-demi": ">=0.14.0" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "requires": {} + } + } + }, "bootstrap": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz", diff --git a/web/docroot/package.json b/web/docroot/package.json index 180b89e..d585cca 100644 --- a/web/docroot/package.json +++ b/web/docroot/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@popperjs/core": "^2.11.8", + "@vueuse/core": "^10.1.2", "bootstrap": "^5.3.0", "bootstrap-icons": "^1.10.5", "pinia": "^2.1.3", diff --git a/web/docroot/public/favicon.png b/web/docroot/public/favicon.ico similarity index 100% rename from web/docroot/public/favicon.png rename to web/docroot/public/favicon.ico diff --git a/web/docroot/src/App.vue b/web/docroot/src/App.vue index a80de51..c2b433d 100644 --- a/web/docroot/src/App.vue +++ b/web/docroot/src/App.vue @@ -5,9 +5,13 @@ import Header from '@/components/Header.vue' diff --git a/web/docroot/src/components/Body.vue b/web/docroot/src/components/Body.vue index 26736a0..fa01edf 100644 --- a/web/docroot/src/components/Body.vue +++ b/web/docroot/src/components/Body.vue @@ -1,13 +1,13 @@ diff --git a/web/docroot/src/components/Error.vue b/web/docroot/src/components/Error.vue index 0bf8c4e..e0990e7 100644 --- a/web/docroot/src/components/Error.vue +++ b/web/docroot/src/components/Error.vue @@ -1,9 +1,8 @@ + diff --git a/web/docroot/src/components/Modinfo.vue b/web/docroot/src/components/Modinfo.vue index 2200fb3..baeb7c2 100644 --- a/web/docroot/src/components/Modinfo.vue +++ b/web/docroot/src/components/Modinfo.vue @@ -1,16 +1,18 @@ +