mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
gex: simplify build
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -14,7 +14,7 @@ vendor_*
|
|||||||
node-modules
|
node-modules
|
||||||
bindings/ts/*.d.ts
|
bindings/ts/*.d.ts
|
||||||
bindings/ts/*.js.map
|
bindings/ts/*.js.map
|
||||||
desktop-extensions/gnome/_build
|
desktop-extensions/gnome/dist
|
||||||
desktop-extensions/gnome/target
|
|
||||||
desktop-extensions/gnome/node_modules
|
desktop-extensions/gnome/node_modules
|
||||||
desktop-extensions/gnome/schemas/gschemas.compiled
|
desktop-extensions/gnome/schemas/gschemas.compiled
|
||||||
|
desktop-extensions/gnome/*.zip
|
||||||
|
|||||||
65
desktop-extensions/gnome/esbuild.js
Normal file
65
desktop-extensions/gnome/esbuild.js
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
const { build } = require("esbuild");
|
||||||
|
const fs = require("fs");
|
||||||
|
const path = require("path");
|
||||||
|
var exec = require('child_process').exec;
|
||||||
|
const AdmZip = require("adm-zip");
|
||||||
|
const metadata = require("./src/metadata.json");
|
||||||
|
|
||||||
|
build({
|
||||||
|
entryPoints: ['src/extension.ts'],
|
||||||
|
outdir: 'dist',
|
||||||
|
bundle: true,
|
||||||
|
// Do not remove the functions `enable()`, `disable()` and `init()`
|
||||||
|
treeShaking: false,
|
||||||
|
// firefox60 // Since GJS 1.53.90
|
||||||
|
// firefox68 // Since GJS 1.63.90
|
||||||
|
// firefox78 // Since GJS 1.65.90
|
||||||
|
// firefox91 // Since GJS 1.71.1
|
||||||
|
// firefox102 // Since GJS 1.73.2
|
||||||
|
target: "firefox78",
|
||||||
|
platform: "node",
|
||||||
|
// platform: "neutral",
|
||||||
|
// mainFields: ['main'],
|
||||||
|
// conditions: ['require', 'default'],
|
||||||
|
// format: 'cjs',
|
||||||
|
external: ['gi://*', 'system', 'gettext', 'cairo'],
|
||||||
|
}).then(() => {
|
||||||
|
const metaSrc = path.resolve(__dirname, "src/metadata.json");
|
||||||
|
const metaDist = path.resolve(__dirname, "dist/metadata.json");
|
||||||
|
const schemaSrc = path.resolve(__dirname, "schemas");
|
||||||
|
const schemaDist = path.resolve(__dirname, "dist/schemas");
|
||||||
|
const dbusXmlSrc = path.resolve(__dirname, "../../bindings/dbus-xml");
|
||||||
|
const dbusXmlDist = path.resolve(__dirname, "dist/resources/dbus");
|
||||||
|
const zipFilename = `${metadata.uuid}.zip`;
|
||||||
|
const zipDist = path.resolve(__dirname, zipFilename);
|
||||||
|
|
||||||
|
exec('glib-compile-schemas schemas/',
|
||||||
|
(error, stdout, stderr) => {
|
||||||
|
console.log('stdout: ' + stdout);
|
||||||
|
console.log('stderr: ' + stderr);
|
||||||
|
});
|
||||||
|
|
||||||
|
fs.copyFileSync(metaSrc, metaDist);
|
||||||
|
|
||||||
|
fs.cpSync(schemaSrc, schemaDist, { recursive: true }, (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
fs.cpSync(dbusXmlSrc, dbusXmlDist, { recursive: true }, (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const zip = new AdmZip();
|
||||||
|
zip.addLocalFolder(path.resolve(__dirname, "dist"));
|
||||||
|
zip.writeZip(zipDist);
|
||||||
|
|
||||||
|
console.log(`Build complete. Zip file: ${zipFilename}\n`);
|
||||||
|
console.log(`Install with: gnome-extensions install ${zipFilename}`)
|
||||||
|
console.log(`Update with: gnome-extensions install ${zipFilename} --force`)
|
||||||
|
console.log(`Enable with: gnome-extensions enable ${metadata.uuid} --user`)
|
||||||
|
});
|
||||||
|
|
||||||
1902
desktop-extensions/gnome/package-lock.json
generated
1902
desktop-extensions/gnome/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -2,26 +2,19 @@
|
|||||||
"name": "asusctl-gex",
|
"name": "asusctl-gex",
|
||||||
"version": "4.7.0",
|
"version": "4.7.0",
|
||||||
"description": "asusctl-gex is a frontend for some functionalities of asusctl and supergfxctl that were born inside the asus-linux.org community.\n\nasusctl is required.\n\nTo learn more about it, please have a look at:\nhttps://gitlab.com/asus-linux/asusctl\nhttps://gitlab.com/asus-linux/asusctl-gex\n\nhttps://asus-linux.org/",
|
"description": "asusctl-gex is a frontend for some functionalities of asusctl and supergfxctl that were born inside the asus-linux.org community.\n\nasusctl is required.\n\nTo learn more about it, please have a look at:\nhttps://gitlab.com/asus-linux/asusctl\nhttps://gitlab.com/asus-linux/asusctl-gex\n\nhttps://asus-linux.org/",
|
||||||
"dependencies": {
|
"main": "dist/extension.js",
|
||||||
"npm-run-all": "^4.1.5",
|
|
||||||
"typescript": "^4.3.5"
|
|
||||||
},
|
|
||||||
"devDependencies": {},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:clean": "rm -rf _build _target schemas/gschemas.compiled target",
|
"clear": "rm -rf dist",
|
||||||
"build:compile": "scripts/compile",
|
"build:app": "node esbuild.js",
|
||||||
"build:convert": "scripts/convert",
|
"build": "yarn run clear && yarn run build:app",
|
||||||
"build:schemas": "glib-compile-schemas schemas",
|
"validate": "tsc --noEmit"
|
||||||
"build:transpile": "npx tsc",
|
},
|
||||||
"build": "run-p build:clean && run-p build:transpile && run-p build:schemas && run-p build:convert && run-p build:compile",
|
"devDependencies": {
|
||||||
"debug:nested_shell": "run-p build && run-p install-dev && scripts/nested_shell",
|
"adm-zip": "^0.5.10",
|
||||||
"debug": "run-p debug:nested_shell",
|
"esbuild": "^0.17.19",
|
||||||
"disable": "gnome-extensions disable \"asusctl-gex@asus-linux.org\"",
|
"typescript": "^5.0.4"
|
||||||
"enable": "gnome-extensions enable \"asusctl-gex@asus-linux.org\"",
|
},
|
||||||
"install-user": "scripts/install",
|
"dependencies": {
|
||||||
"install-dev": "scripts/install dev",
|
|
||||||
"uninstall-local": "scripts/uninstall",
|
|
||||||
"zip": "scripts/zipit"
|
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
rm -rf _build
|
|
||||||
mkdir -p _build/modules
|
|
||||||
mkdir -p _build/bindings
|
|
||||||
mkdir -p _build/resources
|
|
||||||
cp -r target/modules/*js _build/modules/
|
|
||||||
cp -r target/bindings/*.js _build/bindings/
|
|
||||||
cp -r metadata.json schemas target/*.js _build
|
|
||||||
cp -r ../../bindings/dbus-xml _build/resources/dbus
|
|
||||||
# cp -r icons resources *.css _build
|
|
||||||
# cp src/prefs.ui _build/
|
|
||||||
|
|
||||||
exit 0;
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
find target/ -type f -print0 | while IFS= read -r -d $'\0' file; do \
|
|
||||||
sed -i \
|
|
||||||
-e 's#export function#function#g' \
|
|
||||||
-e 's#export var#var#g' \
|
|
||||||
-e 's#export const#var#g' \
|
|
||||||
-e 's#Object.defineProperty(exports, "__esModule", { value: true });#var exports = {};#g' \
|
|
||||||
$file; \
|
|
||||||
|
|
||||||
sed -i -E 's|export class (\w+)|var \1 = class \1|g' $file; \
|
|
||||||
|
|
||||||
sed -i -E "s|import \* as (\w+) from '.\/(\w+)\/(\w+)'|const \1 = Me.imports.\2.\3|g" $file; \
|
|
||||||
sed -i -E "s|import \* as (\w+) from '..\/(\w+)\/(\w+)'|const \1 = Me.imports.\2.\3|g" $file; \
|
|
||||||
# root
|
|
||||||
sed -i -E "s|import \* as (\w+) from '.\/(\w+)'|const \1 = Me.imports.\2|g" $file; \
|
|
||||||
sed -i -E "s|import \* as (\w+) from '..\/(\w+)'|const \1 = Me.imports.\2|g" $file; \
|
|
||||||
|
|
||||||
sed -i -E "s|from '.\/modules\/(\w+)'|= Me.imports.modules.\1|g" $file; \
|
|
||||||
sed -i -E "s|from '..\/modules\/(\w+)'|= Me.imports.modules.\1|g" $file; \
|
|
||||||
|
|
||||||
sed -i -E "s|from '.\/bindings\/(\w+)'|= Me.imports.bindings.\1|g" $file; \
|
|
||||||
sed -i -E "s|from '..\/bindings\/(\w+)'|= Me.imports.bindings.\1|g" $file; \
|
|
||||||
|
|
||||||
sed -i -E "s|from '.\/(\w+)'|= Me.imports.\1|g" $file; \
|
|
||||||
sed -i -E "s|from '..\/(\w+)'|= Me.imports.\1|g" $file; \
|
|
||||||
|
|
||||||
sed -i -E "s|import \{|var \{|g" $file; \
|
|
||||||
done
|
|
||||||
|
|
||||||
exit 0;
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
isdev=false
|
|
||||||
for arg in "$@"; do
|
|
||||||
if [ "$arg" = "dev" ]; then
|
|
||||||
isdev=true
|
|
||||||
fi;
|
|
||||||
done
|
|
||||||
|
|
||||||
INSTALLBASE=~/.local/share/gnome-shell/extensions
|
|
||||||
UUID=`grep -E '^[ ]*"uuid":' _build/metadata.json | sed 's@^[ ]*"uuid":[ ]*"\(.\+\)",[ ]*@\1@'`
|
|
||||||
UUIDDEV=`grep -E '^[ ]*"uuid-dev":' _build/metadata.json | sed 's@^[ ]*"uuid-dev":[ ]*"\(.\+\)",[ ]*@\1@'`
|
|
||||||
GV=`gnome-shell --version | awk '{print $3}'`
|
|
||||||
|
|
||||||
if $isdev
|
|
||||||
then
|
|
||||||
sed -i "s/${UUID}/${UUIDDEV}/g" _build/metadata.json
|
|
||||||
rm -fr "${INSTALLBASE}/${UUID}"
|
|
||||||
UUID=$UUIDDEV
|
|
||||||
else
|
|
||||||
rm -fr "${INSTALLBASE}/${UUIDDEV}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "${INSTALLBASE}/${UUID}" ]; then
|
|
||||||
rm -rf "${INSTALLBASE}/${UUID}/*"
|
|
||||||
else
|
|
||||||
mkdir -p "${INSTALLBASE}/${UUID}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -r _build/* "${INSTALLBASE}/${UUID}/"
|
|
||||||
|
|
||||||
gnome-extensions info "${UUID}"
|
|
||||||
INSTALLED="$?"
|
|
||||||
|
|
||||||
if [ "$INSTALLED" -eq 0 ]; then
|
|
||||||
echo "reset"
|
|
||||||
gnome-extensions reset "${UUID}"
|
|
||||||
echo "enable"
|
|
||||||
gnome-extensions enable "${UUID}"
|
|
||||||
|
|
||||||
echo "Please restart GNOME Shell if you are on X11 or logout and login again when you use Wayland."
|
|
||||||
else
|
|
||||||
echo "You probably install the extension for the first time. Please restart GNOME Shell or Logout and enable the extension via the Extensions app or extensions.gnome.org."
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0;
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
MUTTER_DEBUG_DUMMY_MODE_SPECS=1366x768 dbus-run-session -- gnome-shell --nested --wayland
|
|
||||||
exit 0
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
UUID=`grep -E '^[ ]*"uuid":' metadata.json | sed 's@^[ ]*"uuid":[ ]*"\(.\+\)",[ ]*@\1@'`
|
|
||||||
INSTALLBASE=~/.local/share/gnome-shell/extensions
|
|
||||||
|
|
||||||
gnome-extensions disable "$UUID"
|
|
||||||
rm -rf "$INSTALLBASE/$UUID"
|
|
||||||
|
|
||||||
exit 0;
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
UUID=`grep -E '^[ ]*"uuid":' metadata.json | sed 's@^[ ]*"uuid":[ ]*"\(.\+\)",[ ]*@\1@'`
|
|
||||||
VSTRING=`grep -E '^[ ]*"version":' metadata.json | sed 's@^[ ]*"version":[ ]*"\(.\+\)",[ ]*@\1@'`
|
|
||||||
rm *.zip
|
|
||||||
cd _build && zip -qr "../$UUID.zip" .
|
|
||||||
|
|
||||||
exit 0;
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
declare const global: any, imports: any;
|
declare const imports: any;
|
||||||
declare var asusctlGexInstance: any;
|
var asusctlGexInstance: any;
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "asusctl-gex",
|
"name": "asusctl-gex",
|
||||||
"description": "asusctl-gex is a frontend for some functionalities of asusctl and supergfxctl that were born inside the asus-linux.org community.\n\nasusctl is required.\n\nTo learn more about it, please have a look at:\nhttps://gitlab.com/asus-linux/asusctl\nhttps://gitlab.com/asus-linux/asusctl-gex\n\nhttps://asus-linux.org/",
|
"description": "asusctl-gex is a frontend for some functionalities of asusctl and supergfxctl that were born inside the asus-linux.org community.\n\nasusctl is required.\n\nTo learn more about it, please have a look at:\nhttps://gitlab.com/asus-linux/asusctl\nhttps://gitlab.com/asus-linux/asusctl-gex\n\nhttps://asus-linux.org/",
|
||||||
"uuid": "asusctl-gex@asus-linux.org",
|
"uuid": "asusctl-gex-dev@asus-linux.org",
|
||||||
"uuid-dev": "asusctl-gex-dev@asus-linux.org",
|
"uuid-dev": "asusctl-gex-dev@asus-linux.org",
|
||||||
"settings-schema": "org.gnome.shell.extensions.asusctl-gex",
|
"settings-schema": "org.gnome.shell.extensions.asusctl-gex",
|
||||||
"version": "4.3.2",
|
"version": "4.3.2",
|
||||||
@@ -1,26 +1,18 @@
|
|||||||
{
|
{
|
||||||
"compileOnSave": true,
|
"compilerOptions": {
|
||||||
"compilerOptions": {
|
"lib": ["es2019"],
|
||||||
"target": "es2019",
|
"types": [],
|
||||||
// "module": "ES2015",
|
"target": "es2019",
|
||||||
"moduleResolution": "node",
|
"module": "CommonJS",
|
||||||
// "rootDir": "./",
|
"moduleResolution": "node",
|
||||||
"strict": true,
|
"declaration": true,
|
||||||
"outDir": "./target",
|
"removeComments": true,
|
||||||
"forceConsistentCasingInFileNames": true,
|
"strict": true,
|
||||||
"downlevelIteration": true,
|
"allowJs": true
|
||||||
"lib": [ "es2019" ],
|
},
|
||||||
"pretty": true,
|
"include": [],
|
||||||
"sourceMap": true,
|
"files": [
|
||||||
"declaration": true,
|
"src/*.ts",
|
||||||
"removeComments": true,
|
"src/**/*.ts"
|
||||||
"incremental": true,
|
]
|
||||||
"noUnusedLocals": true,
|
|
||||||
"noUnusedParameters": true,
|
|
||||||
"allowJs": true
|
|
||||||
},
|
|
||||||
"include": [
|
|
||||||
"src/*.ts",
|
|
||||||
"src/**/*.ts"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user