aboutsummaryrefslogtreecommitdiff
path: root/src-vue/src/views/DeveloperView.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src-vue/src/views/DeveloperView.vue')
-rw-r--r--src-vue/src/views/DeveloperView.vue369
1 files changed, 0 insertions, 369 deletions
diff --git a/src-vue/src/views/DeveloperView.vue b/src-vue/src/views/DeveloperView.vue
deleted file mode 100644
index 19214157..00000000
--- a/src-vue/src/views/DeveloperView.vue
+++ /dev/null
@@ -1,369 +0,0 @@
-<template>
- <div class="fc-container">
- <el-scrollbar>
- <el-alert title="Warning" type="warning" :closable="false" show-icon>
- This page is designed for developers. Some of the buttons here can break your Northstar install if you do not know what you're doing!
- </el-alert>
-
- <h3>Basic:</h3>
-
- <el-button type="primary" @click="disableDevMode">
- Disable developer mode
- </el-button>
-
- <el-button type="primary" @click="crashApplication">
- Panic button
- </el-button>
-
- <h3>Linux:</h3>
-
- <el-button type="primary" @click="installNSProton">
- Install NSProton
- </el-button>
-
- <el-button type="primary" @click="uninstallNSProton">
- Remove NSProton
- </el-button>
-
- <el-button type="primary" @click="getLocalNSProtonVersion">
- Get local NSProton Version
- </el-button>
-
- <h3>Testing:</h3>
-
- <el-button type="primary" @click="launchGameWithoutChecks">
- Launch Northstar (bypass all checks)
- </el-button>
-
- <el-button type="primary" @click="launchGameViaSteam">
- Launch Northstar via Steam
- </el-button>
-
- <el-button type="primary" @click="installLauncherGitMain">
- Install launcher from main branch
- </el-button>
-
- <br />
- <br />
-
- <el-button type="primary" @click="getAvailableNorthstarVersions">
- Get available versions
- </el-button>
-
- <el-select v-model="selected_ns_version" class="m-2" placeholder="Versions">
- <el-option
- v-for="item in ns_versions"
- :key="item.value"
- :label="item.label"
- :value="item"
- />
- </el-select>
-
- <el-button type="primary" @click="installNorthstarVersion">
- Install
- </el-button>
-
- <h3>Repair:</h3>
-
- <el-button type="primary" @click="checkCgnat">
- Run tracert and collect hop count
- </el-button>
-
- <el-button type="primary" @click="getInstalledMods">
- Get installed mods
- </el-button>
-
- <h3>Testing</h3>
- <pull-requests-selector />
-
- <h3>Mod install:</h3>
-
- <el-input v-model="mod_to_install_field_string" placeholder="Please input Thunderstore dependency string (example: AuthorName-ModName-1.2.3)" clearable />
-
- <el-button type="primary" @click="installMod">
- Install mod
- </el-button>
-
- <h3>Release management</h3>
- <el-select v-model="selected_project" placeholder="Select">
- <el-option
- v-for="item in project"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- <el-button type="primary" @click="getTags">
- Get tags
- </el-button>
-
- <el-select v-model="firstTag" class="m-2" placeholder="First tag">
- <el-option
- v-for="item in ns_release_tags"
- :key="item.value"
- :label="item.label"
- :value="item"
- />
- </el-select>
- <el-select v-model="secondTag" class="m-2" placeholder="Second tag">
- <el-option
- v-for="item in ns_release_tags"
- :key="item.value"
- :label="item.label"
- :value="item"
- />
- </el-select>
-
- <el-button type="primary" @click="compareTags">
- Compare Tags
- </el-button>
-
- <el-button type="primary" @click="copyReleaseNotesToClipboard">
- Copy to clipboard
- </el-button>
-
- <el-input
- v-model="release_notes_text"
- type="textarea"
- :rows="5"
- placeholder="Output"
- />
-
- <h3>Release announcements</h3>
-
- <el-button type="primary" @click="generateReleaseAnnouncementMessage">
- Generate release announcement
- </el-button>
-
- <el-input
- v-model="discord_release_announcement_text"
- type="textarea"
- :rows="5"
- placeholder="Output"
- />
- </el-scrollbar>
- </div>
-</template>
-
-<script lang="ts">
-import { defineComponent } from "vue";
-import { invoke } from "@tauri-apps/api";
-import { NorthstarLaunchOptions } from "../../../src-tauri/bindings/NorthstarLaunchOptions";
-import { TagWrapper } from "../../../src-tauri/bindings/TagWrapper";
-import { NorthstarThunderstoreReleaseWrapper } from "../../../src-tauri/bindings/NorthstarThunderstoreReleaseWrapper";
-import PullRequestsSelector from "../components/PullRequestsSelector.vue";
-import { showErrorNotification, showNotification } from "../utils/ui";
-import { Project } from "../../../src-tauri/bindings/Project"
-
-export default defineComponent({
- name: "DeveloperView",
- components: {
- PullRequestsSelector
- },
- data() {
- return {
- mod_to_install_field_string: "",
- release_notes_text: "",
- discord_release_announcement_text: "",
- first_tag: { label: '', value: { name: '' } },
- second_tag: { label: '', value: { name: '' } },
- ns_release_tags: [] as TagWrapper[],
- ns_versions: [] as NorthstarThunderstoreReleaseWrapper[],
- selected_ns_version: { label: '', value: { package: '', version: '' } } as NorthstarThunderstoreReleaseWrapper,
- selected_project: "FlightCore",
- project: [
- {
- value: 'FlightCore',
- label: 'FlightCore',
- },
- {
- value: 'Northstar',
- label: 'Northstar',
- }
- ],
- }
- },
- computed: {
- firstTag: {
- get(): TagWrapper {
- return this.first_tag;
- },
- set(value: TagWrapper) {
- this.first_tag = value;
- }
- },
- secondTag: {
- get(): TagWrapper {
- return this.second_tag;
- },
- set(value: TagWrapper) {
- this.second_tag = value;
- }
- },
- },
- methods: {
- disableDevMode() {
- this.$store.commit('toggleDeveloperMode');
- },
- async crashApplication() {
- await invoke("force_panic");
- showErrorNotification("Never should have been able to get here!");
- },
- async launchGameWithoutChecks() {
- let launch_options: NorthstarLaunchOptions = { bypass_checks: true, launch_via_steam: false };
- this.$store.commit('launchGame', launch_options);
- },
- async launchGameViaSteam() {
- let launch_options: NorthstarLaunchOptions = { bypass_checks: false, launch_via_steam: true };
- this.$store.commit('launchGameSteam', launch_options);
- },
- async getInstalledMods() {
- await invoke("get_installed_mods_and_properties", { gameInstall: this.$store.state.game_install }).then((message) => {
- // Simply console logging for now
- // In the future we should display the installed mods somewhere
- console.log(message);
-
- // Just a visual indicator that it worked
- showNotification('Success');
- })
- .catch((error) => {
- showErrorNotification(error);
- });
- },
- async installMod() {
- let mod_to_install = this.mod_to_install_field_string;
- await invoke<string>("install_mod_wrapper", { gameInstall: this.$store.state.game_install, thunderstoreModString: mod_to_install }).then((message) => {
- // Show user notification if mod install completed.
- showNotification(`Installed ${mod_to_install}`, message);
- })
- .catch((error) => {
- showErrorNotification(error);
- });
- },
- async getTags() {
- await invoke<TagWrapper[]>("get_list_of_tags", { project: this.selected_project })
- .then((message) => {
- this.ns_release_tags = message;
- showNotification("Done", "Fetched tags");
- this.first_tag = this.ns_release_tags[1];
- this.second_tag = this.ns_release_tags[0];
- this.compareTags();
- })
- .catch((error) => {
- showErrorNotification(error);
- });
- },
- async compareTags() {
- await invoke<string>("compare_tags", { project: this.selected_project, firstTag: this.firstTag.value, secondTag: this.secondTag.value })
- .then((message) => {
- this.release_notes_text = message;
- showNotification("Done", "Generated release notes");
- this.copyReleaseNotesToClipboard();
- })
- .catch((error) => {
- showErrorNotification(error);
- });
- },
- async installLauncherGitMain() {
-
- const notification = showNotification(`Installing git main`, 'Please wait', 'info', 0);
-
- await invoke<string>("install_git_main", { gameInstallPath: this.$store.state.game_install.game_path })
- .then((message) => {
- this.release_notes_text = message;
- showNotification("Done", `Installed launcher build from ${message}`);
- })
- .catch((error) => {
- showErrorNotification(error);
- })
- .finally(() => {
- // Clear old notification
- notification.close();
- });
- },
- async getAvailableNorthstarVersions() {
- await invoke<NorthstarThunderstoreReleaseWrapper[]>("get_available_northstar_versions")
- .then((message) => {
- this.ns_versions = message;
- showNotification("Done", "Fetched all available Northstar versions");
- })
- .catch((error) => {
- showErrorNotification(error);
- });
- },
- async installNorthstarVersion() {
- // Send notification telling the user to wait for the process to finish
- const notification = showNotification(
- `Installing Northstar version v${this.selected_ns_version.value.version}`,
- "Please wait",
- 'info',
- 0
- );
-
- let install_northstar_result = invoke("install_northstar_wrapper", { gameInstall: this.$store.state.game_install, northstarPackageName: this.selected_ns_version.value.package, versionNumber: this.selected_ns_version.value.version });
-
- await install_northstar_result
- .then((message) => {
- // Send notification
- showNotification(this.$t('generic.done'), this.$t('settings.repair.window.reinstall_success'));
- this.$store.commit('checkNorthstarUpdates');
- })
- .catch((error) => {
- showErrorNotification(error);
- console.error(error);
- })
- .finally(() => {
- // Clear old notification
- notification.close();
- });
- },
- async installNSProton() {
- showNotification(`Started NSProton install`);
- await invoke("install_northstar_proton_wrapper")
- .then((message) => { showNotification(`Done`); })
- .catch((error) => { showNotification(`Error`, error, "error"); })
- },
- async uninstallNSProton() {
- await invoke("uninstall_northstar_proton_wrapper")
- .then((message) => { showNotification(`Done`); })
- .catch((error) => { showNotification(`Error`, error, "error"); })
- },
- async getLocalNSProtonVersion() {
- await invoke("get_local_northstar_proton_wrapper_version")
- .then((message) => { showNotification(`NSProton Version`, message as string); })
- .catch((error) => { showNotification(`Error`, error, "error"); })
- },
- async checkCgnat() {
- await invoke<string>("check_cgnat")
- .then((message) => {
- showNotification(message);
- })
- .catch((error) => {
- showErrorNotification(error);
- });
- },
- async copyReleaseNotesToClipboard() {
- navigator.clipboard.writeText(this.release_notes_text)
- .then(() => {
- showNotification("Copied to clipboard");
- })
- .catch(() => {
- showErrorNotification("Failed copying to clipboard");
- });
- },
- async generateReleaseAnnouncementMessage() {
- await invoke<string>("generate_release_note_announcement", { })
- .then((message) => {
- this.discord_release_announcement_text = message;
- showNotification("Done", "Generated announcement");
- })
- .catch((error) => {
- showErrorNotification(error);
- });
- },
- }
-});
-</script>
-
-<style scoped>
-</style>