1
0
chuang-packages/h3c-inode-client/package.nix
2025-02-28 17:15:38 +08:00

144 lines
3.2 KiB
Nix
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
stdenv,
makeWrapper,
autoPatchelfHook,
# denpendencies
libgcc,
libxcrypt-legacy,
libuuid,
libpng12,
libjpeg,
libudev0-shim,
libz,
atk,
bash,
coreutils,
ell,
glib,
cairo,
ncurses5,
pango,
gtk2,
gdk-pixbuf,
freetype,
fontconfig,
xorg, # libSM, libX11, libXxf86vm
...
}:
let
install_dir = "/opt/iNodeClient";
libraries = [
libgcc
libxcrypt-legacy
libuuid
libpng12
libjpeg
libudev0-shim
libz
atk
ell
bash
coreutils
glib
cairo
ncurses5
pango
gtk2
gdk-pixbuf
freetype
fontconfig
xorg.libSM
xorg.libX11
xorg.libXxf86vm
];
in
stdenv.mkDerivation {
pname = "h3c-inode-client";
version = "7.3.0";
src = fetchTarball {
url = "https://download.h3c.com/app/cn/download.do?id=7684846";
sha256 = "0y92bia0xcm6d8al3vzkgglcqd63z09lkssvi9ihsz6m1kabwxyl";
};
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
];
buildInputs = libraries;
installPhase = ''
#
mkdir -p $out${install_dir}
for i in $(ls -a $src); do
if [ $i == "$src/clientfiles" ]; then
continue
fi
cp -r $i $out${install_dir}
done
for i in $(ls $out${install_dir}/*.ps); do
sed -i 's|#!/bin/sh|#!/usr/bin/env sh|' $i
chmod +x $i
done
# enablecards.ps
head -n1 $out${install_dir}/enablecards.ps | tee $out${install_dir}/enablecards.ps
#
rm -rf $out${install_dir}/clientfiles
ln -sf /var/lib/inode/clientfiles $out${install_dir}/
ln -sf /var/lib/inode/Data $out${install_dir}/
mkdir -p $out/var/lib/inode/conf
mv $out${install_dir}/conf/iNode.conf $out/var/lib/inode/conf
rm $out${install_dir}/conf -rf
ln -sf /var/lib/inode/conf $out${install_dir}/
#
rm -rf $out${install_dir}/log
ln -sf /var/log/inode $out${install_dir}/log
#
mkdir -p $out/share/applications
cat $out${install_dir}/iNodeClient.desktop | sed "/^Exec=/s#@INSTALL_PATH/iNodeClient.sh#$out${install_dir}/.iNode/iNodeClient#" | sed "/^Icon=/s#@INSTALL_PATH#$out${install_dir}#" > $out/share/applications/iNodeClient.desktop
# /etc
mkdir -p $out/etc/iNode
echo INSTALL_DIR=$out${install_dir} > $out/etc/iNode/inodesys.conf
#
mkdir -p $out/bin
cat > $out/bin/h3c-inode-client <<EOF
#!/usr/bin/env bash
$out${install_dir}/.iNode/iNodeClient
EOF
chmod +x $out/bin/h3c-inode-client
cat > $out/bin/setup <<EOF
#!/usr/bin/env bash
[ -d /var/lib/inode/clientfiles/7000 ] || mkdir -p /var/lib/inode/clientfiles/7000
[ -d /var/lib/inode/Data ] || mkdir -p /var/lib/inode/Data
[ -d /var/lib/inode/conf ] || mkdir -p /var/lib/inode/conf
[ -e /var/lib/inode/conf/iNode.conf ] || cp $out/var/lib/inode/conf/iNode.conf /var/lib/inode/conf
chmod 777 -R /var/lib/inode/*
[ -d /var/log/inode/cmd ] || mkdir -p /var/log/inode/cmd
chmod 777 -R /var/log/inode
EOF
chmod +x $out/bin/setup
cat > $out/bin/AuthenMngService <<EOF
#!/usr/bin/env bash
$out${install_dir}/iNodeMon \$@
$out${install_dir}/AuthenMngService \$@
EOF
chmod +x $out/bin/AuthenMngService
'';
}