@@ -6,6 +6,7 @@ import Interface from "./Extensions.blp" with { type: "uri" };
66import illustration from "./extensions.svg" ;
77
88import "./Extension.js" ;
9+ import { getFlatpakInfo } from "../util.js" ;
910
1011export const action_extensions = new Gio . SimpleAction ( {
1112 name : "extensions" ,
@@ -26,8 +27,13 @@ export function Extensions({ window }) {
2627 picture_illustration . set_resource ( illustration ) ;
2728
2829 extension_rust . enabled = isRustEnabled ( ) ;
30+ extension_rust . command = `flatpak install flathub org.freedesktop.Sdk.Extension.rust-stable//${ freedesktop_version } org.freedesktop.Sdk.Extension.${ llvm } //${ freedesktop_version } ` ;
31+
2932 extension_vala . enabled = isValaEnabled ( ) ;
33+ extension_vala . command = `flatpak install flathub org.freedesktop.Sdk.Extension.vala//${ freedesktop_version } ` ;
34+
3035 extension_typescript . enabled = isTypeScriptEnabled ( ) ;
36+ extension_typescript . command = `flatpak install flathub org.freedesktop.Sdk.Extension.${ node } //${ freedesktop_version } org.freedesktop.Sdk.Extension.typescript//${ freedesktop_version } ` ;
3137
3238 for ( const extension of [
3339 extension_rust ,
@@ -47,25 +53,30 @@ export function Extensions({ window }) {
4753 window . add_action ( action_extensions ) ;
4854}
4955
50- let rust_enabled ;
56+ let rust_enabled = false ;
5157export function isRustEnabled ( ) {
5258 rust_enabled ??=
5359 Gio . File . new_for_path ( "/usr/lib/sdk/rust-stable" ) . query_exists ( null ) &&
54- Gio . File . new_for_path ( " /usr/lib/sdk/llvm18" ) . query_exists ( null ) ;
60+ Gio . File . new_for_path ( ` /usr/lib/sdk/${ llvm } ` ) . query_exists ( null ) ;
5561 return rust_enabled ;
5662}
5763
58- let vala_enabled ;
64+ let vala_enabled = false ;
5965export function isValaEnabled ( ) {
6066 vala_enabled ??=
6167 Gio . File . new_for_path ( "/usr/lib/sdk/vala" ) . query_exists ( null ) ;
6268 return vala_enabled ;
6369}
6470
65- let typescript_enabled ;
71+ let typescript_enabled = false ;
6672export function isTypeScriptEnabled ( ) {
6773 typescript_enabled ??=
6874 Gio . File . new_for_path ( "/usr/lib/sdk/typescript" ) . query_exists ( null ) &&
69- Gio . File . new_for_path ( " /usr/lib/sdk/node20" ) . query_exists ( null ) ;
75+ Gio . File . new_for_path ( ` /usr/lib/sdk/${ node } ` ) . query_exists ( null ) ;
7076 return typescript_enabled ;
7177}
78+
79+ const llvm = "llvm18" ;
80+ const node = "node20" ;
81+ const runtime = getFlatpakInfo ( ) . get_string ( "Application" , "runtime" ) ;
82+ const freedesktop_version = runtime . endsWith ( "master" ) ? "24.08beta" : "23.08" ;
0 commit comments