mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-01-22 17:33:19 +01:00
gex: simplify build
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -14,7 +14,7 @@ vendor_*
|
||||
node-modules
|
||||
bindings/ts/*.d.ts
|
||||
bindings/ts/*.js.map
|
||||
desktop-extensions/gnome/_build
|
||||
desktop-extensions/gnome/target
|
||||
desktop-extensions/gnome/dist
|
||||
desktop-extensions/gnome/node_modules
|
||||
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",
|
||||
"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/",
|
||||
"dependencies": {
|
||||
"npm-run-all": "^4.1.5",
|
||||
"typescript": "^4.3.5"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"main": "dist/extension.js",
|
||||
"scripts": {
|
||||
"build:clean": "rm -rf _build _target schemas/gschemas.compiled target",
|
||||
"build:compile": "scripts/compile",
|
||||
"build:convert": "scripts/convert",
|
||||
"build:schemas": "glib-compile-schemas schemas",
|
||||
"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",
|
||||
"debug:nested_shell": "run-p build && run-p install-dev && scripts/nested_shell",
|
||||
"debug": "run-p debug:nested_shell",
|
||||
"disable": "gnome-extensions disable \"asusctl-gex@asus-linux.org\"",
|
||||
"enable": "gnome-extensions enable \"asusctl-gex@asus-linux.org\"",
|
||||
"install-user": "scripts/install",
|
||||
"install-dev": "scripts/install dev",
|
||||
"uninstall-local": "scripts/uninstall",
|
||||
"zip": "scripts/zipit"
|
||||
"clear": "rm -rf dist",
|
||||
"build:app": "node esbuild.js",
|
||||
"build": "yarn run clear && yarn run build:app",
|
||||
"validate": "tsc --noEmit"
|
||||
},
|
||||
"devDependencies": {
|
||||
"adm-zip": "^0.5.10",
|
||||
"esbuild": "^0.17.19",
|
||||
"typescript": "^5.0.4"
|
||||
},
|
||||
"dependencies": {
|
||||
},
|
||||
"repository": {
|
||||
"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 var asusctlGexInstance: any;
|
||||
declare const imports: any;
|
||||
var asusctlGexInstance: any;
|
||||
//@ts-ignore
|
||||
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"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/",
|
||||
"uuid": "asusctl-gex@asus-linux.org",
|
||||
"uuid": "asusctl-gex-dev@asus-linux.org",
|
||||
"uuid-dev": "asusctl-gex-dev@asus-linux.org",
|
||||
"settings-schema": "org.gnome.shell.extensions.asusctl-gex",
|
||||
"version": "4.3.2",
|
||||
@@ -1,26 +1,18 @@
|
||||
{
|
||||
"compileOnSave": true,
|
||||
"compilerOptions": {
|
||||
"target": "es2019",
|
||||
// "module": "ES2015",
|
||||
"moduleResolution": "node",
|
||||
// "rootDir": "./",
|
||||
"strict": true,
|
||||
"outDir": "./target",
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"downlevelIteration": true,
|
||||
"lib": [ "es2019" ],
|
||||
"pretty": true,
|
||||
"sourceMap": true,
|
||||
"declaration": true,
|
||||
"removeComments": true,
|
||||
"incremental": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"allowJs": true
|
||||
},
|
||||
"include": [
|
||||
"src/*.ts",
|
||||
"src/**/*.ts"
|
||||
]
|
||||
"compilerOptions": {
|
||||
"lib": ["es2019"],
|
||||
"types": [],
|
||||
"target": "es2019",
|
||||
"module": "CommonJS",
|
||||
"moduleResolution": "node",
|
||||
"declaration": true,
|
||||
"removeComments": true,
|
||||
"strict": true,
|
||||
"allowJs": true
|
||||
},
|
||||
"include": [],
|
||||
"files": [
|
||||
"src/*.ts",
|
||||
"src/**/*.ts"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user