refactor: update build scripts and workflows for 2026-08-02

This commit is contained in:
horsicq
2026-08-02 17:02:21 +02:00
parent 890afcfbb1
commit 8464a4cc88
9 changed files with 187 additions and 183 deletions
+4 -4
View File
@@ -805,8 +805,8 @@ jobs:
'mkdir -p package' \
'cp -a build/* package/ || true' \
'for d in db db_extra db_custom peid_rules yara_rules; do \
if [ -d "Detect-It-Easy/$d" ]; then \
cp -a "Detect-It-Easy/$d" package/; \
if [ -d "dep/Detect-It-Easy/$d" ]; then \
cp -a "dep/Detect-It-Easy/$d" package/; \
fi; \
done' \
'tar -czf detect-it-easy-s390x.tar.gz -C package .' \
@@ -880,8 +880,8 @@ jobs:
'mkdir -p package' \
'cp -a build/* package/ || true' \
'for d in db db_extra db_custom peid_rules yara_rules; do \
if [ -d "Detect-It-Easy/$d" ]; then \
cp -a "Detect-It-Easy/$d" package/; \
if [ -d "dep/Detect-It-Easy/$d" ]; then \
cp -a "dep/Detect-It-Easy/$d" package/; \
fi; \
done' \
'tar -czf detect-it-easy-riscv64.tar.gz -C package .' \
+77 -77
View File
@@ -1,77 +1,77 @@
# Stage 1: Build the engine
FROM alpine:latest AS builder
# Install build dependencies
RUN apk add --no-cache \
build-base \
cmake \
qt5-qtbase-dev \
qt5-qtscript-dev \
qt5-qttools-dev \
qt5-qtsvg-dev \
pkgconfig \
git \
make \
bash
WORKDIR /build
# Copy the engine source
COPY DIE-engine_src .
# Fix the variable shadowing bug
RUN sed -i 's/QString sResult = qApp->property/sResult = qApp->property/g' XOptions/xoptions.cpp
# Build the engine (binaries land in build/release like before)
RUN cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-DQT_NO_DEBUG_OUTPUT" \
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/build/build/release && \
cmake --build build -j$(nproc)
# Strip symbols
RUN strip build/release/diec
# --- Surgical Dependency Extraction ---
RUN mkdir -p /dist/bin /dist/lib /dist/share/die /dist/opt/detect-it-easy
# Copy the binary
RUN cp build/release/diec /dist/bin/
# Use ldd to find all dependencies and copy them to /dist/lib
# We handle both /usr/lib and /lib paths
RUN ldd build/release/diec | grep "=> /" | awk '{print $3}' | xargs -I {} cp -v {} /dist/lib/
# Copy the database and rules from this repo (context)
WORKDIR /build-context
COPY . .
RUN cp -r db db_extra db_custom yara_rules /dist/share/die/ && \
cp -r DIE-engine_src/XInfoDB/info /dist/share/die/info && \
mkdir -p /dist/share/die/signatures && \
cp DIE-engine_src/signatures/crypto.db /dist/share/die/signatures/
# Create symlinks in the dist directory
RUN ln -s /usr/share/die/db /dist/opt/detect-it-easy/db && \
ln -s /usr/share/die/db_extra /dist/opt/detect-it-easy/db_extra && \
ln -s /usr/share/die/db_custom /dist/opt/detect-it-easy/db_custom && \
ln -s /usr/share/die/yara_rules /dist/opt/detect-it-easy/yara_rules && \
ln -s /usr/share/die/info /dist/opt/detect-it-easy/info && \
ln -s /usr/share/die/signatures /dist/opt/detect-it-easy/signatures
# Stage 2: Final ultra-minimal image
FROM alpine:latest
# Copy everything from the dist directory
COPY --from=builder /dist/bin/ /usr/bin/
COPY --from=builder /dist/lib/ /usr/lib/
COPY --from=builder /dist/share/die/ /usr/share/die/
COPY --from=builder /dist/opt/detect-it-easy/ /opt/detect-it-easy/
# Set environment variables
ENV DIE_DB_PATH=/usr/share/die/db
# Verify
RUN diec --showdatabase
ENTRYPOINT ["/usr/bin/diec"]
CMD ["--help"]
# Stage 1: Build the engine
FROM alpine:latest AS builder
# Install build dependencies
RUN apk add --no-cache \
build-base \
cmake \
qt5-qtbase-dev \
qt5-qtscript-dev \
qt5-qttools-dev \
qt5-qtsvg-dev \
pkgconfig \
git \
make \
bash
WORKDIR /build
# Copy the engine source
COPY DIE-engine_src .
# Fix the variable shadowing bug
RUN sed -i 's/QString sResult = qApp->property/sResult = qApp->property/g' dep/XOptions/xoptions.cpp
# Build the engine (binaries land in build/release like before)
RUN cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-DQT_NO_DEBUG_OUTPUT" \
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/build/build/release && \
cmake --build build -j$(nproc)
# Strip symbols
RUN strip build/release/diec
# --- Surgical Dependency Extraction ---
RUN mkdir -p /dist/bin /dist/lib /dist/share/die /dist/opt/detect-it-easy
# Copy the binary
RUN cp build/release/diec /dist/bin/
# Use ldd to find all dependencies and copy them to /dist/lib
# We handle both /usr/lib and /lib paths
RUN ldd build/release/diec | grep "=> /" | awk '{print $3}' | xargs -I {} cp -v {} /dist/lib/
# Copy the database and rules from this repo (context)
WORKDIR /build-context
COPY . .
RUN cp -r db db_extra db_custom yara_rules /dist/share/die/ && \
cp -r DIE-engine_src/dep/XInfoDB/info /dist/share/die/info && \
mkdir -p /dist/share/die/signatures && \
cp DIE-engine_src/dep/signatures/crypto.db /dist/share/die/signatures/
# Create symlinks in the dist directory
RUN ln -s /usr/share/die/db /dist/opt/detect-it-easy/db && \
ln -s /usr/share/die/db_extra /dist/opt/detect-it-easy/db_extra && \
ln -s /usr/share/die/db_custom /dist/opt/detect-it-easy/db_custom && \
ln -s /usr/share/die/yara_rules /dist/opt/detect-it-easy/yara_rules && \
ln -s /usr/share/die/info /dist/opt/detect-it-easy/info && \
ln -s /usr/share/die/signatures /dist/opt/detect-it-easy/signatures
# Stage 2: Final ultra-minimal image
FROM alpine:latest
# Copy everything from the dist directory
COPY --from=builder /dist/bin/ /usr/bin/
COPY --from=builder /dist/lib/ /usr/lib/
COPY --from=builder /dist/share/die/ /usr/share/die/
COPY --from=builder /dist/opt/detect-it-easy/ /opt/detect-it-easy/
# Set environment variables
ENV DIE_DB_PATH=/usr/share/die/db
# Verify
RUN diec --showdatabase
ENTRYPOINT ["/usr/bin/diec"]
CMD ["--help"]
+7 -7
View File
@@ -67,13 +67,13 @@ package() {
echo "${_prefix}Copying the package files"
install -Dm 644 build/src/translations/*.qm -t "$pkgdir"/opt/"${pkgname}"/lang
install -Dm 644 XStyles/qss/* -t "$pkgdir"/opt/"${pkgname}"/qss
cp -r XInfoDB/info/* -t "$pkgdir"/opt/"${pkgname}"/info/
cp -r Detect-It-Easy/db/* -t "$pkgdir"/opt/"${pkgname}"/db/
cp -r Detect-It-Easy/db_extra/* -t "$pkgdir"/opt/"${pkgname}"/db_extra/
cp -r XYara/yara_rules/* -t "$pkgdir"/opt/"${pkgname}"/yara_rules/
cp -r XPEID/peid/* -t "$pkgdir"/opt/"${pkgname}"/peid/
install -Dm 644 signatures/crypto.db -t "$pkgdir"/opt/"${pkgname}"/signatures
install -Dm 644 dep/XStyles/qss/* -t "$pkgdir"/opt/"${pkgname}"/qss
cp -r dep/XInfoDB/info/* -t "$pkgdir"/opt/"${pkgname}"/info/
cp -r dep/Detect-It-Easy/db/* -t "$pkgdir"/opt/"${pkgname}"/db/
cp -r dep/Detect-It-Easy/db_extra/* -t "$pkgdir"/opt/"${pkgname}"/db_extra/
cp -r dep/XYara/yara_rules/* -t "$pkgdir"/opt/"${pkgname}"/yara_rules/
cp -r dep/XPEID/peid/* -t "$pkgdir"/opt/"${pkgname}"/peid/
install -Dm 644 dep/signatures/crypto.db -t "$pkgdir"/opt/"${pkgname}"/signatures
cp -r images/* -t "$pkgdir"/opt/"${pkgname}"/images/
echo "${_prefix}Setting up /usr/bin launchers"
+4 -4
View File
@@ -33,8 +33,8 @@ mkdir -p "$WORK_DIR/usr/share/icons"
mkdir -p "$WORK_DIR/usr/share/metainfo"
# Copy assets not covered by cmake install (db, db_extra, peid, etc.)
[ -d "$X_SOURCE_PATH/Detect-It-Easy/db_extra" ] && \
cp -Rf "$X_SOURCE_PATH/Detect-It-Easy/db_extra/." "$WORK_DIR/usr/lib/die/db_extra/"
[ -d "$X_SOURCE_PATH/dep/Detect-It-Easy/db_extra" ] && \
cp -Rf "$X_SOURCE_PATH/dep/Detect-It-Easy/db_extra/." "$WORK_DIR/usr/lib/die/db_extra/"
# lang: cmake installs to prefix/lang; move to usr/lib/die/lang
if [ -d "$STAGE_USR/lang" ]; then
@@ -43,9 +43,9 @@ if [ -d "$STAGE_USR/lang" ]; then
fi
# crypto.db
if [ -f "$X_SOURCE_PATH/signatures/crypto.db" ]; then
if [ -f "$X_SOURCE_PATH/dep/signatures/crypto.db" ]; then
mkdir -p "$WORK_DIR/usr/lib/die/signatures"
cp -f "$X_SOURCE_PATH/signatures/crypto.db" "$WORK_DIR/usr/lib/die/signatures/"
cp -f "$X_SOURCE_PATH/dep/signatures/crypto.db" "$WORK_DIR/usr/lib/die/signatures/"
fi
# Build DEBIAN/control
+6 -6
View File
@@ -50,14 +50,14 @@ fi
# Copy data from cmake install staging (qss, db, info, yara, images, lang)
[ -d "$STAGE_DIR/lib/die/" ] && cp -Rf "$STAGE_DIR/lib/die/." "$PACKAGE_DIR/base/"
# Fallback: copy assets directly if cmake install didn't include them
[ ! -d "$PACKAGE_DIR/base/qss" ] && cp -Rf "$X_SOURCE_PATH/XStyles/qss/" "$PACKAGE_DIR/base/qss/"
[ ! -d "$PACKAGE_DIR/base/info" ] && cp -Rf "$X_SOURCE_PATH/XInfoDB/info/" "$PACKAGE_DIR/base/info/"
[ ! -d "$PACKAGE_DIR/base/db" ] && cp -Rf "$X_SOURCE_PATH/Detect-It-Easy/db/" "$PACKAGE_DIR/base/db/"
[ ! -d "$PACKAGE_DIR/base/yara_rules" ] && cp -Rf "$X_SOURCE_PATH/XYara/yara_rules/" "$PACKAGE_DIR/base/yara_rules/"
[ ! -d "$PACKAGE_DIR/base/qss" ] && cp -Rf "$X_SOURCE_PATH/dep/XStyles/qss/" "$PACKAGE_DIR/base/qss/"
[ ! -d "$PACKAGE_DIR/base/info" ] && cp -Rf "$X_SOURCE_PATH/dep/XInfoDB/info/" "$PACKAGE_DIR/base/info/"
[ ! -d "$PACKAGE_DIR/base/db" ] && cp -Rf "$X_SOURCE_PATH/dep/Detect-It-Easy/db/" "$PACKAGE_DIR/base/db/"
[ ! -d "$PACKAGE_DIR/base/yara_rules" ] && cp -Rf "$X_SOURCE_PATH/dep/XYara/yara_rules/" "$PACKAGE_DIR/base/yara_rules/"
[ ! -d "$PACKAGE_DIR/base/images" ] && cp -Rf "$X_SOURCE_PATH/images/" "$PACKAGE_DIR/base/images/"
if [ -f "$X_SOURCE_PATH/signatures/crypto.db" ]; then
if [ -f "$X_SOURCE_PATH/dep/signatures/crypto.db" ]; then
mkdir -p "$PACKAGE_DIR/base/signatures"
cp -f "$X_SOURCE_PATH/signatures/crypto.db" "$PACKAGE_DIR/base/signatures/"
cp -f "$X_SOURCE_PATH/dep/signatures/crypto.db" "$PACKAGE_DIR/base/signatures/"
fi
for bin in die diec diel; do
+6 -6
View File
@@ -45,13 +45,13 @@ fi
RESOURCES="$APP_BUNDLE/Contents/Resources"
mkdir -p "$RESOURCES/signatures"
cp -Rf "$X_SOURCE_PATH/XStyles/qss" "$RESOURCES/"
cp -Rf "$X_SOURCE_PATH/XInfoDB/info" "$RESOURCES/"
cp -Rf "$X_SOURCE_PATH/Detect-It-Easy/db" "$RESOURCES/"
[ -d "$X_SOURCE_PATH/Detect-It-Easy/db_extra" ] && cp -Rf "$X_SOURCE_PATH/Detect-It-Easy/db_extra" "$RESOURCES/"
cp -Rf "$X_SOURCE_PATH/XYara/yara_rules" "$RESOURCES/"
cp -Rf "$X_SOURCE_PATH/dep/XStyles/qss" "$RESOURCES/"
cp -Rf "$X_SOURCE_PATH/dep/XInfoDB/info" "$RESOURCES/"
cp -Rf "$X_SOURCE_PATH/dep/Detect-It-Easy/db" "$RESOURCES/"
[ -d "$X_SOURCE_PATH/dep/Detect-It-Easy/db_extra" ] && cp -Rf "$X_SOURCE_PATH/dep/Detect-It-Easy/db_extra" "$RESOURCES/"
cp -Rf "$X_SOURCE_PATH/dep/XYara/yara_rules" "$RESOURCES/"
cp -Rf "$X_SOURCE_PATH/images" "$RESOURCES/"
[ -f "$X_SOURCE_PATH/signatures/crypto.db" ] && cp -f "$X_SOURCE_PATH/signatures/crypto.db" "$RESOURCES/signatures/"
[ -f "$X_SOURCE_PATH/dep/signatures/crypto.db" ] && cp -f "$X_SOURCE_PATH/dep/signatures/crypto.db" "$RESOURCES/signatures/"
# Copy diec into the bundle
DIEC_BIN=$(find "$BUILD_DIR/src/console" -maxdepth 2 -name "diec" -type f | head -1)
Vendored
+5 -1
View File
@@ -34,10 +34,14 @@ fi
cmake "$@" || exit 1
# Bare "-j" means unlimited parallelism, which spawns one compiler per ready
# target and exhausts memory on CI runners. Bake in a concrete job count.
NPROC=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
cat > Makefile <<EOF
# Generated by ./configure - delegates to the CMake build.
all:
cmake --build $BUILD_DIR -j
cmake --build $BUILD_DIR -j$NPROC
install:
bash -x install.sh $PREFIX
+47 -47
View File
@@ -1,47 +1,47 @@
#!/bin/bash -x
export X_SOURCE_PATH=$PWD
export X_RELEASE_VERSION=$(cat "release_version.txt")
export VERSION=$X_RELEASE_VERSION
source build_tools/linux.sh
create_image_app_dir die
cp -f $X_SOURCE_PATH/build/release/die $X_SOURCE_PATH/release/appDir/usr/bin/
#cp -f $X_SOURCE_PATH/build/release/diec $X_SOURCE_PATH/release/appDir/usr/bin/
#cp -f $X_SOURCE_PATH/build/release/diel $X_SOURCE_PATH/release/appDir/usr/bin/
cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.desktop $X_SOURCE_PATH/release/appDir/usr/share/applications/
cp -Rf $X_SOURCE_PATH/LINUX/hicolor/ $X_SOURCE_PATH/release/appDir/usr/share/icons/
cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.metainfo.xml $X_SOURCE_PATH/release/appDir/usr/share/metainfo/
cp -Rf $X_SOURCE_PATH/images/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/XStyles/qss/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/XInfoDB/info/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db_custom/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db_extra/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/XYara/yara_rules/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/XPEID/peid/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/die/signatures
cp -f $X_SOURCE_PATH/signatures/crypto.db $X_SOURCE_PATH/release/appDir/usr/lib/die/signatures/
mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/platforms
cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/platforms/
mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/imageformats
cp /usr/lib/x86_64-linux-gnu/qt5/plugins/imageformats/libqjpeg.so $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/imageformats/
mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/printsupport
cp /usr/lib/x86_64-linux-gnu/qt5/plugins/printsupport/libcupsprintersupport.so $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/printsupport/
cd $X_SOURCE_PATH/release
linuxdeploy \
--appdir $X_SOURCE_PATH/release/appDir \
--plugin qt \
--executable $X_SOURCE_PATH/release/appDir/usr/bin/die \
--output appimage
cd $X_SOURCE_PATH
rm -Rf $X_SOURCE_PATH/release/appDir
#!/bin/bash -x
export X_SOURCE_PATH=$PWD
export X_RELEASE_VERSION=$(cat "release_version.txt")
export VERSION=$X_RELEASE_VERSION
source dep/build_tools/linux.sh
create_image_app_dir die
cp -f $X_SOURCE_PATH/build/release/die $X_SOURCE_PATH/release/appDir/usr/bin/
#cp -f $X_SOURCE_PATH/build/release/diec $X_SOURCE_PATH/release/appDir/usr/bin/
#cp -f $X_SOURCE_PATH/build/release/diel $X_SOURCE_PATH/release/appDir/usr/bin/
cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.desktop $X_SOURCE_PATH/release/appDir/usr/share/applications/
cp -Rf $X_SOURCE_PATH/LINUX/hicolor/ $X_SOURCE_PATH/release/appDir/usr/share/icons/
cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.metainfo.xml $X_SOURCE_PATH/release/appDir/usr/share/metainfo/
cp -Rf $X_SOURCE_PATH/images/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/dep/XStyles/qss/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/dep/XInfoDB/info/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/dep/Detect-It-Easy/db/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/dep/Detect-It-Easy/db_custom/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/dep/Detect-It-Easy/db_extra/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/dep/XYara/yara_rules/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
cp -Rf $X_SOURCE_PATH/dep/XPEID/peid/ $X_SOURCE_PATH/release/appDir/usr/lib/die/
mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/die/signatures
cp -f $X_SOURCE_PATH/dep/signatures/crypto.db $X_SOURCE_PATH/release/appDir/usr/lib/die/signatures/
mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/platforms
cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/platforms/
mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/imageformats
cp /usr/lib/x86_64-linux-gnu/qt5/plugins/imageformats/libqjpeg.so $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/imageformats/
mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/printsupport
cp /usr/lib/x86_64-linux-gnu/qt5/plugins/printsupport/libcupsprintersupport.so $X_SOURCE_PATH/release/appDir/usr/lib/qt5/plugins/printsupport/
cd $X_SOURCE_PATH/release
linuxdeploy \
--appdir $X_SOURCE_PATH/release/appDir \
--plugin qt \
--executable $X_SOURCE_PATH/release/appDir/usr/bin/die \
--output appimage
cd $X_SOURCE_PATH
rm -Rf $X_SOURCE_PATH/release/appDir
+31 -31
View File
@@ -1,31 +1,31 @@
#!/bin/bash -x
export X_SOURCE_PATH=$PWD
if [ -z "$1" ]; then
X_PREFIX="/usr"
else
X_PREFIX="$1"
fi
mkdir -p $X_PREFIX/bin
mkdir -p $X_PREFIX/share/applications
mkdir -p $X_PREFIX/share/icons
mkdir -p $X_PREFIX/share/metainfo
mkdir -p $X_PREFIX/lib/die
mkdir -p $X_PREFIX/lib/die/signatures
cp -f $X_SOURCE_PATH/build/release/die $X_PREFIX/bin/
cp -f $X_SOURCE_PATH/build/release/diec $X_PREFIX/bin/
cp -f $X_SOURCE_PATH/build/release/diel $X_PREFIX/bin/
cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.desktop $X_PREFIX/share/applications/
cp -Rf $X_SOURCE_PATH/LINUX/hicolor/ $X_PREFIX/share/icons/
cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.metainfo.xml $X_PREFIX/share/metainfo/
cp -Rf $X_SOURCE_PATH/XStyles/qss/ $X_PREFIX/lib/die/
cp -f $X_SOURCE_PATH/signatures/crypto.db $X_PREFIX/lib/die/signatures/
cp -Rf $X_SOURCE_PATH/XInfoDB/info/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/XYara/yara_rules/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/XPEID/peid/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db_extra/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db_custom/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/images/ $X_PREFIX/lib/die/
#!/bin/bash -x
export X_SOURCE_PATH=$PWD
if [ -z "$1" ]; then
X_PREFIX="/usr"
else
X_PREFIX="$1"
fi
mkdir -p $X_PREFIX/bin
mkdir -p $X_PREFIX/share/applications
mkdir -p $X_PREFIX/share/icons
mkdir -p $X_PREFIX/share/metainfo
mkdir -p $X_PREFIX/lib/die
mkdir -p $X_PREFIX/lib/die/signatures
cp -f $X_SOURCE_PATH/build/release/die $X_PREFIX/bin/
cp -f $X_SOURCE_PATH/build/release/diec $X_PREFIX/bin/
cp -f $X_SOURCE_PATH/build/release/diel $X_PREFIX/bin/
cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.desktop $X_PREFIX/share/applications/
cp -Rf $X_SOURCE_PATH/LINUX/hicolor/ $X_PREFIX/share/icons/
cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.metainfo.xml $X_PREFIX/share/metainfo/
cp -Rf $X_SOURCE_PATH/dep/XStyles/qss/ $X_PREFIX/lib/die/
cp -f $X_SOURCE_PATH/dep/signatures/crypto.db $X_PREFIX/lib/die/signatures/
cp -Rf $X_SOURCE_PATH/dep/XInfoDB/info/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/dep/Detect-It-Easy/db/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/dep/XYara/yara_rules/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/dep/XPEID/peid/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/dep/Detect-It-Easy/db_extra/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/dep/Detect-It-Easy/db_custom/ $X_PREFIX/lib/die/
cp -Rf $X_SOURCE_PATH/images/ $X_PREFIX/lib/die/