Compare commits
4 Commits
23b68d9e19
...
9bd958ef24
Author | SHA1 | Date |
---|---|---|
raojinlin | 9bd958ef24 | |
Lykin | ad2c4c432b | |
raojinlin | c4d41b12dc | |
Lykin | 53563acac0 |
|
@ -3,6 +3,12 @@ name: Release Linux App
|
||||||
on:
|
on:
|
||||||
release:
|
release:
|
||||||
types: [ published ]
|
types: [ published ]
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
tag:
|
||||||
|
description: 'Version tag'
|
||||||
|
required: true
|
||||||
|
default: '1.0.0'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
|
@ -27,8 +33,13 @@ jobs:
|
||||||
id: normalise_version
|
id: normalise_version
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g')
|
if [ "${{ github.event.release.tag_name }}" == "" ]; then
|
||||||
echo "version=$version" >> "$GITHUB_OUTPUT"
|
version=$(echo ${{ github.event.inputs.tag }} | sed -e 's/v//g')
|
||||||
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
|
else
|
||||||
|
version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g')
|
||||||
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Setup Go
|
- name: Setup Go
|
||||||
uses: actions/setup-go@v4
|
uses: actions/setup-go@v4
|
||||||
|
@ -65,7 +76,7 @@ jobs:
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
CGO_ENABLED=1 wails build -platform ${{ matrix.platform }} \
|
CGO_ENABLED=1 wails build -platform ${{ matrix.platform }} \
|
||||||
-ldflags "-X main.version=${{ github.event.release.tag_name }} -X main.gaMeasurementID=${{ secrets.GA_MEASUREMENT_ID }} -X main.gaSecretKey=${{ secrets.LINUX_GA_SECRET }}" \
|
-ldflags "-X main.version=v${{ steps.normalise_version.outputs.version }} -X main.gaMeasurementID=${{ secrets.GA_MEASUREMENT_ID }} -X main.gaSecretKey=${{ secrets.LINUX_GA_SECRET }}" \
|
||||||
-o tiny-rdm
|
-o tiny-rdm
|
||||||
|
|
||||||
- name: Setup control template
|
- name: Setup control template
|
||||||
|
@ -105,5 +116,6 @@ jobs:
|
||||||
- name: Upload release asset
|
- name: Upload release asset
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
|
tag_name: v${{ steps.normalise_version.outputs.version }}
|
||||||
files: ./build/linux/tiny-rdm_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }}.deb
|
files: ./build/linux/tiny-rdm_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }}.deb
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
|
@ -3,6 +3,12 @@ name: Release macOS App
|
||||||
on:
|
on:
|
||||||
release:
|
release:
|
||||||
types: [ published ]
|
types: [ published ]
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
tag:
|
||||||
|
description: 'Version tag'
|
||||||
|
required: true
|
||||||
|
default: '1.0.0'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
|
@ -29,8 +35,13 @@ jobs:
|
||||||
id: normalise_version
|
id: normalise_version
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g')
|
if [ "${{ github.event.release.tag_name }}" == "" ]; then
|
||||||
echo "version=$version" >> "$GITHUB_OUTPUT"
|
version=$(echo ${{ github.event.inputs.tag }} | sed -e 's/v//g')
|
||||||
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
|
else
|
||||||
|
version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g')
|
||||||
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Setup Go
|
- name: Setup Go
|
||||||
uses: actions/setup-go@v4
|
uses: actions/setup-go@v4
|
||||||
|
@ -116,5 +127,6 @@ jobs:
|
||||||
- name: Upload release asset (DMG Package)
|
- name: Upload release asset (DMG Package)
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
|
tag_name: v${{ steps.normalise_version.outputs.version }}
|
||||||
files: ./build/bin/TinyRDM_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }}.dmg
|
files: ./build/bin/TinyRDM_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }}.dmg
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
|
@ -3,6 +3,12 @@ name: Release Windows App
|
||||||
on:
|
on:
|
||||||
release:
|
release:
|
||||||
types: [ published ]
|
types: [ published ]
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
tag:
|
||||||
|
description: 'Version tag'
|
||||||
|
required: true
|
||||||
|
default: '1.0.0'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
|
@ -25,16 +31,23 @@ jobs:
|
||||||
echo "tag=$tag" >> "$GITHUB_OUTPUT"
|
echo "tag=$tag" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
- name: Normalise platform name
|
- name: Normalise platform name
|
||||||
id: platform_name
|
id: normalise_platform_name
|
||||||
shell: bash
|
shell: bash
|
||||||
run: tag=$(echo ${{ matrix.platform }} | sed -e 's/\//_/g')
|
run: |
|
||||||
|
pname=$(echo ${{ matrix.platform }} | sed -e 's/\//_/g')
|
||||||
|
echo "pname=$pname" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
- name: Normalise version tag
|
- name: Normalise version tag
|
||||||
id: normalise_version
|
id: normalise_version
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g')
|
if [ "${{ github.event.release.tag_name }}" == "" ]; then
|
||||||
echo "version=$version" >> "$GITHUB_OUTPUT"
|
version=$(echo ${{ github.event.inputs.tag }} | sed -e 's/v//g')
|
||||||
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
|
else
|
||||||
|
version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g')
|
||||||
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Setup Go
|
- name: Setup Go
|
||||||
uses: actions/setup-go@v4
|
uses: actions/setup-go@v4
|
||||||
|
@ -71,7 +84,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
CGO_ENABLED=1 wails build -clean -platform ${{ matrix.platform }} \
|
CGO_ENABLED=1 wails build -clean -platform ${{ matrix.platform }} \
|
||||||
-webview2 embed \
|
-webview2 embed \
|
||||||
-ldflags "-X main.version=${{ github.event.release.tag_name }} -X main.gaMeasurementID=${{ secrets.GA_MEASUREMENT_ID }} -X main.gaSecretKey=${{ secrets.WINDOWS_GA_SECRET }}"
|
-ldflags "-X main.version=v${{ steps.normalise_version.outputs.version }} -X main.gaMeasurementID=${{ secrets.GA_MEASUREMENT_ID }} -X main.gaSecretKey=${{ secrets.WINDOWS_GA_SECRET }}"
|
||||||
|
|
||||||
- name: Compress portable binary
|
- name: Compress portable binary
|
||||||
working-directory: ./build/bin
|
working-directory: ./build/bin
|
||||||
|
@ -80,6 +93,7 @@ jobs:
|
||||||
- name: Upload release asset (Portable)
|
- name: Upload release asset (Portable)
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
|
tag_name: v${{ steps.normalise_version.outputs.version }}
|
||||||
files: ./build/bin/TinyRDM_Portable_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }}.zip
|
files: ./build/bin/TinyRDM_Portable_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }}.zip
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
@ -88,7 +102,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
CGO_ENABLED=1 wails build -clean -platform ${{ matrix.platform }} \
|
CGO_ENABLED=1 wails build -clean -platform ${{ matrix.platform }} \
|
||||||
-nsis -webview2 embed \
|
-nsis -webview2 embed \
|
||||||
-ldflags "-X main.version=${{ github.event.release.tag_name }}"
|
-ldflags "-X main.version=v${{ steps.normalise_version.outputs.version }}"
|
||||||
|
|
||||||
- name: Codesign Windows NSIS installer
|
- name: Codesign Windows NSIS installer
|
||||||
working-directory: ./build/bin
|
working-directory: ./build/bin
|
||||||
|
@ -98,7 +112,7 @@ jobs:
|
||||||
Set-Content -Path certificate\certificate.txt -Value '${{ secrets.WIN_SIGNING_CERT }}'
|
Set-Content -Path certificate\certificate.txt -Value '${{ secrets.WIN_SIGNING_CERT }}'
|
||||||
certutil -decode certificate\certificate.txt certificate\certificate.pfx
|
certutil -decode certificate\certificate.txt certificate\certificate.pfx
|
||||||
echo "Signing TinyRDM installer"
|
echo "Signing TinyRDM installer"
|
||||||
& 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe' sign /fd sha256 /tr http://ts.ssl.com /f certificate\certificate.pfx /p '${{ secrets.WIN_SIGNING_CERT_PASSWORD }}' TinyRDM-${{ matrix.platform }}-installer.exe
|
& 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe' sign /fd sha256 /tr http://ts.ssl.com /f certificate\certificate.pfx /p '${{ secrets.WIN_SIGNING_CERT_PASSWORD }}' TinyRDM-${{ steps.normalise_platform_name.outputs.pname }}-installer.exe
|
||||||
|
|
||||||
- name: Rename installer
|
- name: Rename installer
|
||||||
working-directory: ./build/bin
|
working-directory: ./build/bin
|
||||||
|
@ -107,5 +121,6 @@ jobs:
|
||||||
- name: Upload release asset (Installer)
|
- name: Upload release asset (Installer)
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
|
tag_name: v${{ steps.normalise_version.outputs.version }}
|
||||||
files: ./build/bin/TinyRDM_Setup_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }}.exe
|
files: ./build/bin/TinyRDM_Setup_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }}.exe
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { computed, nextTick, onMounted, onUnmounted, ref, watch } from 'vue'
|
||||||
import * as monaco from 'monaco-editor'
|
import * as monaco from 'monaco-editor'
|
||||||
import usePreferencesStore from 'stores/preferences.js'
|
import usePreferencesStore from 'stores/preferences.js'
|
||||||
import { useThemeVars } from 'naive-ui'
|
import { useThemeVars } from 'naive-ui'
|
||||||
|
import { isEmpty } from 'lodash'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
content: {
|
content: {
|
||||||
|
@ -22,6 +23,14 @@ const props = defineProps({
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
offsetKey: {
|
||||||
|
type: String,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
keepOffset: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits(['reset', 'input', 'save'])
|
const emit = defineEmits(['reset', 'input', 'save'])
|
||||||
|
@ -31,6 +40,18 @@ const themeVars = useThemeVars()
|
||||||
const editorRef = ref(null)
|
const editorRef = ref(null)
|
||||||
/** @type monaco.editor.IStandaloneCodeEditor */
|
/** @type monaco.editor.IStandaloneCodeEditor */
|
||||||
let editorNode = null
|
let editorNode = null
|
||||||
|
const scrollOffset = { top: 0, left: 0 }
|
||||||
|
|
||||||
|
const updateScroll = () => {
|
||||||
|
if (editorNode != null) {
|
||||||
|
if (props.keepOffset && !isEmpty(props.offsetKey)) {
|
||||||
|
editorNode.setScrollPosition({ scrollTop: scrollOffset.top, scrollLeft: scrollOffset.left })
|
||||||
|
} else {
|
||||||
|
// reset offset if not needed
|
||||||
|
editorNode.setScrollPosition({ scrollTop: 0, scrollLeft: 0 })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const destroyEditor = () => {
|
const destroyEditor = () => {
|
||||||
if (editorNode != null && editorNode.dispose != null) {
|
if (editorNode != null && editorNode.dispose != null) {
|
||||||
|
@ -88,6 +109,18 @@ onMounted(async () => {
|
||||||
emit('save')
|
emit('save')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
editorNode.onDidScrollChange((event) => {
|
||||||
|
// save scroll offset when changes, ie. content changes
|
||||||
|
if (props.keepOffset && !event.scrollHeightChanged) {
|
||||||
|
scrollOffset.top = event.scrollTop
|
||||||
|
scrollOffset.left = event.scrollLeft
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
editorNode.onDidLayoutChange((event) => {
|
||||||
|
updateScroll()
|
||||||
|
})
|
||||||
|
|
||||||
// editorNode.onDidChangeModelLanguageConfiguration(() => {
|
// editorNode.onDidChangeModelLanguageConfiguration(() => {
|
||||||
// editorNode?.getAction('editor.action.formatDocument')?.run()
|
// editorNode?.getAction('editor.action.formatDocument')?.run()
|
||||||
// })
|
// })
|
||||||
|
@ -106,6 +139,19 @@ watch(
|
||||||
if (editorNode != null) {
|
if (editorNode != null) {
|
||||||
editorNode.setValue(content)
|
editorNode.setValue(content)
|
||||||
await nextTick(() => emit('reset', content))
|
await nextTick(() => emit('reset', content))
|
||||||
|
updateScroll()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.offsetKey,
|
||||||
|
() => {
|
||||||
|
// reset scroll offset when key changed
|
||||||
|
if (editorNode != null) {
|
||||||
|
scrollOffset.top = 0
|
||||||
|
scrollOffset.left = 0
|
||||||
|
editorNode.setScrollPosition({ scrollTop: 0, scrollLeft: 0 })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -175,6 +175,7 @@ const onSave = () => {
|
||||||
:border="true"
|
:border="true"
|
||||||
:content="displayValue"
|
:content="displayValue"
|
||||||
:language="viewLanguage"
|
:language="viewLanguage"
|
||||||
|
:key-path="viewAs.field"
|
||||||
class="flex-item-expand"
|
class="flex-item-expand"
|
||||||
@input="onInput"
|
@input="onInput"
|
||||||
@reset="onInput"
|
@reset="onInput"
|
||||||
|
|
|
@ -149,6 +149,8 @@ defineExpose({
|
||||||
v-show="!props.loading"
|
v-show="!props.loading"
|
||||||
:content="displayValue"
|
:content="displayValue"
|
||||||
:loading="props.loading"
|
:loading="props.loading"
|
||||||
|
:offset-key="props.keyPath"
|
||||||
|
keep-offset
|
||||||
class="flex-item-expand"
|
class="flex-item-expand"
|
||||||
language="json"
|
language="json"
|
||||||
style="height: 100%"
|
style="height: 100%"
|
||||||
|
|
|
@ -204,6 +204,8 @@ defineExpose({
|
||||||
:content="displayValue"
|
:content="displayValue"
|
||||||
:language="viewLanguage"
|
:language="viewLanguage"
|
||||||
:loading="props.loading"
|
:loading="props.loading"
|
||||||
|
:offset-key="props.keyPath"
|
||||||
|
keep-offset
|
||||||
class="flex-item-expand"
|
class="flex-item-expand"
|
||||||
style="height: 100%"
|
style="height: 100%"
|
||||||
@input="onInput"
|
@input="onInput"
|
||||||
|
|
|
@ -93,7 +93,14 @@ watchEffect(() => {
|
||||||
const renderTypeLabel = (option) => {
|
const renderTypeLabel = (option) => {
|
||||||
return h(
|
return h(
|
||||||
NSpace,
|
NSpace,
|
||||||
{ align: 'center', inline: true, size: 3 },
|
{
|
||||||
|
align: 'center',
|
||||||
|
inline: true,
|
||||||
|
size: 3,
|
||||||
|
itemStyle: {
|
||||||
|
lineHeight: 'var(--n-blank-height)',
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
default: () => [
|
default: () => [
|
||||||
h('div', {
|
h('div', {
|
||||||
|
|
Loading…
Reference in New Issue