🔧 chore(scripts): better build script, stop current running instance before starting a new one
This commit is contained in:
+55
-4
@@ -1,10 +1,61 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
outdir="${1:-./build}"
|
output="./build"
|
||||||
|
|
||||||
mkdir -p $outdir
|
while getopts r:o:bdh args; do
|
||||||
|
case "$args" in
|
||||||
|
r)
|
||||||
|
gresources_target=${OPTARG}
|
||||||
|
;;
|
||||||
|
b)
|
||||||
|
keep_gresource=true
|
||||||
|
;;
|
||||||
|
o)
|
||||||
|
output=${OPTARG}
|
||||||
|
;;
|
||||||
|
d)
|
||||||
|
is_devel=true
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
echo "\
|
||||||
|
colorshell's build script.
|
||||||
|
|
||||||
cp -rf node_modules src/
|
Options:
|
||||||
ags bundle src/app.ts $outdir/colorshell
|
-r \$file: specify gresource's target path (default: \`\$output/resources.gresource\`)
|
||||||
|
-o \$path: specify the build's output directory (default: \`./build\`)
|
||||||
|
-b: only target gresource in the build, keeping the file in the output dir
|
||||||
|
-d: enable developer mode in the build
|
||||||
|
-h: show this help message"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d "$output" ]] && [[ ! -z "$(ls -A -w1 $output)" ]]; then
|
||||||
|
echo "[info] cleaning previous build"
|
||||||
|
rm -rf $output/*
|
||||||
|
else
|
||||||
|
mkdir -p $output
|
||||||
|
fi
|
||||||
|
|
||||||
|
# link node_modules to src, so ags(esbuild) knows there are modules to bundle
|
||||||
|
echo "[info] linking modules"
|
||||||
|
ln -s node_modules src/node_modules
|
||||||
|
|
||||||
|
echo "[info] compiling gresource"
|
||||||
|
gres_target=`[[ "$keep_gresource" ]] && echo -n "$output/resources.gresource" || \
|
||||||
|
echo -n "${gresources_target:-$output/resources.gresource}"`
|
||||||
|
mkdir -p `dirname "$gres_target"`
|
||||||
|
glib-compile-resources src/resources.gresource.xml \
|
||||||
|
--sourcedir ./src \
|
||||||
|
--target "$gres_target"
|
||||||
|
|
||||||
|
echo "[info] bundling project"
|
||||||
|
ags bundle src/app.ts $output/colorshell \
|
||||||
|
-r ./src \
|
||||||
|
-d "DEVEL=`[[ $is_devel ]] && echo -n true || echo -n false`" \
|
||||||
|
-d "GRESOURCES_FILE='${gresources_file:-$output/resources.gresource}'"
|
||||||
|
|
||||||
|
echo "[info] cleaning"
|
||||||
rm -rf src/node_modules
|
rm -rf src/node_modules
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
file="${1:-./build/colorshell}"
|
file="${1:-./build/colorshell}"
|
||||||
|
|
||||||
|
function is_running() {
|
||||||
|
if gdbus introspect --session \
|
||||||
|
--dest io.github.retrozinndev.colorshell \
|
||||||
|
--object-path /io/github/retrozinndev/colorshell > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
|
if is_running; then
|
||||||
|
echo "[info] killing previous instance"
|
||||||
|
killall gjs # TODO: call a method to quit via dbus instead of killing GnomeJS
|
||||||
|
fi
|
||||||
|
echo "[info] starting"
|
||||||
exec "$file"
|
exec "$file"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user