protege-distribution: rewrite patching mechanism
Part of the launcher script and configuration were patched via sed commands; make the process clearer by using unified-style patches.
This commit is contained in:
parent
14afd6e5f9
commit
c6b756d7de
|
@ -11,21 +11,19 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ unzip copyDesktopItems ];
|
||||
|
||||
patches = [
|
||||
# Replace logic for searching the install directory with a static cd into $out
|
||||
./static-path.patch
|
||||
# Disable console logging, maintaining only file-based logging
|
||||
./disable-console-log.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Delete all those commands meant to change directory to the source directory
|
||||
sed -i -e '3,9d' run.sh
|
||||
|
||||
# Change directory to where the application is stored to avoid heavy patching
|
||||
# of searchpaths
|
||||
sed -i -e "2a\
|
||||
cd $out/protege" run.sh
|
||||
|
||||
# Set the correct Java executable (Protege is a JRE 8 application)
|
||||
# Resolve @out@ (introduced by "static-path.patch") to $out, and set the
|
||||
# correct Java executable (Protege is a JRE 8 application)
|
||||
substituteInPlace run.sh \
|
||||
--replace "java -X" "exec ${jre8.outPath}/bin/java -X" \
|
||||
|
||||
# Silence console logs, since these are not shown in graphical environments
|
||||
sed -i -e '4,8d;21d' conf/logback.xml
|
||||
--subst-var-by out $out \
|
||||
--replace "java -X" "exec ${jre8.outPath}/bin/java -X"
|
||||
'';
|
||||
|
||||
dontConfigure = true;
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
--- a/conf/logback.xml 2021-06-25 00:49:10.446416341 +0900
|
||||
+++ b/conf/logback.xml 2021-06-25 00:50:32.889120465 +0900
|
||||
@@ -1,13 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration scan="true" scanPeriod="10 seconds">
|
||||
|
||||
- <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
|
||||
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
- <Pattern>%highlight(%msg) %n</Pattern>
|
||||
- </encoder>
|
||||
- </appender>
|
||||
-
|
||||
-
|
||||
<appender name="files" class="ch.qos.logback.core.FileAppender">
|
||||
<file>${user.home}/.Protege/logs/protege.log</file>
|
||||
<append>true</append>
|
||||
@@ -18,9 +11,8 @@
|
||||
|
||||
|
||||
<root level="info">
|
||||
- <appender-ref ref="stdout" />
|
||||
<appender-ref ref="files"/>
|
||||
</root>
|
||||
|
||||
|
||||
-</configuration>
|
||||
\ No newline at end of file
|
||||
+</configuration>
|
16
pkgs/development/web/protege-distribution/static-path.patch
Normal file
16
pkgs/development/web/protege-distribution/static-path.patch
Normal file
|
@ -0,0 +1,16 @@
|
|||
--- a/run.sh 2021-06-24 22:30:20.764897745 +0900
|
||||
+++ b/run.sh 2021-06-24 22:29:47.211210142 +0900
|
||||
@@ -1,12 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
-SOURCE="${BASH_SOURCE[0]}"
|
||||
-while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
- DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
- SOURCE="$(readlink "$SOURCE")"
|
||||
- [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
-done
|
||||
-cd "$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
+cd @out@/protege
|
||||
|
||||
java -Xmx500M -Xms200M \
|
||||
-Xss16M \
|
Loading…
Reference in a new issue