A store record is a name and a catalog
Both extras go. `config` was added this morning on the idea that the registry should say how each store behaves; that was wrong. The configuration is fixed per installed client — the client carries its own store engine and knows its own machine — so a copy here was a second authority over decisions the client had already made correctly, including which directories it may delete from. Keeping two stores on one machine apart is a subfolder, and the client derives that itself. `store_repository_url` goes with it. The store engines it pointed at no longer exist, and a URL nobody follows is a URL that goes stale. The public stores page loses its desktop card for the same reason: it advertised a `curl … | sh` for a repository that is gone, and an ordinary computer is served by the app in the section above it. `/desktop` now lands on that app rather than on a device tab, so the old URL still means what someone typing it wants. Unrelated but in the way: the dead `engines` list in that page has been failing `vue-tsc` on master, so the frontend could not be built to check any of this. Removed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -218,11 +218,6 @@ export default {
|
||||
platformsTitle: 'What gets installed',
|
||||
copy: 'Copy',
|
||||
|
||||
desktop: {
|
||||
name: 'Desktop CLI',
|
||||
site: 'Teletype Games',
|
||||
tagline: 'For scripts and servers',
|
||||
},
|
||||
batocera: {
|
||||
name: 'Batocera',
|
||||
site: 'Batocera project',
|
||||
|
||||
@@ -218,11 +218,6 @@ export default {
|
||||
platformsTitle: 'Mi kerül fel',
|
||||
copy: 'Másolás',
|
||||
|
||||
desktop: {
|
||||
name: 'Desktop CLI',
|
||||
site: 'Teletype Games',
|
||||
tagline: 'Szkriptekhez és szerverekhez',
|
||||
},
|
||||
batocera: {
|
||||
name: 'Batocera',
|
||||
site: 'Batocera projekt',
|
||||
|
||||
@@ -137,7 +137,6 @@ const route = useRoute()
|
||||
const router = useRouter()
|
||||
|
||||
const FORGE = 'https://git.teletypegames.org/stores'
|
||||
const ENGINES_FORGE = 'https://git.teletypegames.org/engines'
|
||||
|
||||
// The graphical client. Its own thing rather than a link on the desktop store: it
|
||||
// drives any WarpEngine store the site's registry offers, and on Windows it is the
|
||||
@@ -148,11 +147,13 @@ const CLIENT = {
|
||||
wikiUrl: `${CONFIG.wikiBase}/stores/warp-engine-client`,
|
||||
}
|
||||
|
||||
type DeviceId = 'desktop' | 'batocera' | 'retroarch'
|
||||
type DeviceId = 'batocera' | 'retroarch'
|
||||
|
||||
// The devices below are the ones a store reaches through a shell installer. An
|
||||
// ordinary computer is not among them any more: there the store *is* the app in the
|
||||
// section above, which carries its own engine and needs nothing installed first.
|
||||
const BATOCERA_CLI = '/userdata/system/batocera-store/ttg-store'
|
||||
const RETROARCH_CLI = '~/.local/bin/ttg-retroarch-store'
|
||||
const DESKTOP_CLI = '~/.local/bin/ttg-desktop-store'
|
||||
|
||||
const devices = [
|
||||
{
|
||||
@@ -172,22 +173,6 @@ const devices = [
|
||||
`${BATOCERA_CLI} remove c64demo`,
|
||||
].join('\n'),
|
||||
},
|
||||
{
|
||||
id: 'desktop' as DeviceId,
|
||||
icon: 'fa-solid fa-desktop',
|
||||
projectUrl: 'https://teletypegames.org',
|
||||
repoUrl: `${FORGE}/ttg-desktop-store`,
|
||||
wikiUrl: `${CONFIG.wikiBase}/stores/ttg-desktop-store`,
|
||||
installCmd: `curl -fsSL ${FORGE}/ttg-desktop-store/raw/branch/master/install.sh | sh`,
|
||||
afterInstallCmd: '',
|
||||
uninstallCmd: `curl -fsSL ${FORGE}/ttg-desktop-store/raw/branch/master/uninstall.sh | sh`,
|
||||
cliSnippet: [
|
||||
`${DESKTOP_CLI} paths # where things go on this machine`,
|
||||
`${DESKTOP_CLI} list # what is installable here, and how`,
|
||||
`${DESKTOP_CLI} sync # install everything new`,
|
||||
`${DESKTOP_CLI} remove pong`,
|
||||
].join('\n'),
|
||||
},
|
||||
{
|
||||
id: 'retroarch' as DeviceId,
|
||||
icon: 'fa-solid fa-gamepad',
|
||||
@@ -213,7 +198,7 @@ type ViewId = 'client' | 'others'
|
||||
// query-only change, so switching does not throw the page back to the top.
|
||||
const initial = devices.some((d) => d.id === route.query.device)
|
||||
? (route.query.device as DeviceId)
|
||||
: 'desktop'
|
||||
: 'batocera'
|
||||
const device = ref<DeviceId>(initial)
|
||||
// The client view is what most visitors want, so it is the default — except when the URL
|
||||
// names a device, which is how /batocera and /retroarch redirect here. Somebody arriving
|
||||
@@ -242,12 +227,6 @@ const platforms = [
|
||||
{ platform: 'c64', label: 'Commodore 64 (VICE)', ext: '.prg', icon: 'fa-solid fa-floppy-disk' },
|
||||
{ platform: 'tic80', label: 'TIC-80', ext: '.tic', icon: 'fa-solid fa-tv' },
|
||||
]
|
||||
|
||||
const engines = [
|
||||
{ name: 'warpstore', url: `${ENGINES_FORGE}/warpstore` },
|
||||
{ name: 'warp-engine-batocera-store', url: `${FORGE}/warp-engine-batocera-store` },
|
||||
{ name: 'warp-engine-retroarch-store', url: `${FORGE}/warp-engine-retroarch-store` },
|
||||
]
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@@ -7,5 +7,7 @@ export const storesRouter: RouteRecordRaw[] = [
|
||||
// makes after reading "RetroArch store" — and each lands on its own tab.
|
||||
{ path: '/batocera', redirect: { name: 'storesIndex', query: { device: 'batocera' } } },
|
||||
{ path: '/retroarch', redirect: { name: 'storesIndex', query: { device: 'retroarch' } } },
|
||||
{ path: '/desktop', redirect: { name: 'storesIndex', query: { device: 'desktop' } } },
|
||||
// `/desktop` used to name a shell store for ordinary computers. That store is the
|
||||
// app now, so the old URL lands on the app rather than on a device tab.
|
||||
{ path: '/desktop', redirect: { name: 'storesIndex' } },
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user