From 701757917ad938d35405e128d79cf7a62de95340 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Mon, 13 Jun 2022 19:44:01 +0200 Subject: [PATCH] Add opkg.sh containing write_config to write config files withing bash --- opkg.sh | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100755 opkg.sh diff --git a/opkg.sh b/opkg.sh new file mode 100755 index 0000000..e88ee47 --- /dev/null +++ b/opkg.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +write_config() { + local path="$1" + local data="{ + \"ini\" : { + \"/opt/app/sysconfig/ISMASMgr.ini\" : \"d41d8cd98f00b204e9800998ecf8427e\", + \"/opt/app/sysconfig/sysconfig.ini\" : \"d41d8cd98f00b204e9800998ecf8427e\", + \"/opt/app/sysconfig/SystemControl.ini\" : \"d41d8cd98f00b204e9800998ecf8427e\" + }, + \"conf\" : { + \"szeged/1/1/etc/psa_config/emp.conf\" : \"d41d8cd98f00b204e9800998ecf8427e\", + \"szeged/1/1/etc/psa_config/printer.conf\": \"d41d8cd98f00b204e9800998ecf8427e\" + }, + \"opkg\" : {" + + local cnt=0 + for package_name in $(opkg list-installed); # list names of installed packages + do + if ! grep -q "^[a-zA-Z]" <<< $package_name; then + continue + fi + + if [ -z "$package_name" ]; then + continue + fi + + cnt=$((cnt+1)) + + printf "%3d:%s\n" "$cnt" "$package_name" + + # Format of package info: + # + # Package: openssh-scp + # Version: 7.8p1+git-r0 + # Depends: libc6 (>= 2.28), update-alternatives-opkg + # Status: install ok installed + # Section: console/network + # Architecture: cortexa9t2hf-neon + # Maintainer: Poky + # MD5Sum: dfffcbb088cd5f180be5e9ee2ad030fe + # Size: 32700 + # Filename: openssh-scp_7.8p1+git-r0_cortexa9t2hf-neon.ipk + # Source: openssh_7.8p1+git.bb + # Description: A suite of security-related network.... + # Installed-Size: 58920 + # Installed-Time: 1654699615 + # + # process substitution (P.S): + # run 'opkg info' synchronously to parent script + + exec {fd}< <(opkg info "$package_name") # open fd readable for P.S. + cs_pid=$! # remember pid of P.S. + + while read package_info_line <&$fd; do + if [[ $package_info_line == Package* ]]; then + package=(${package_info_line// / }) + package="\"${package[1]}\": {" + elif [[ $package_info_line == MD5Sum* ]]; then + md5sum=(${package_info_line// / }) + md5sum="\"${md5sum[0]%?}\": \"${md5sum[1]}\"," + elif [[ $package_info_line == Filename* ]]; then + filename=(${package_info_line// / }) + filename="\"${filename[0]%?}\": \"${filename[1]}\"," + elif [[ $package_info_line == Installed-Time* ]]; then + installed_time=(${package_info_line// / }) + installed_time="\"${installed_time[0]%?}\": \"${installed_time[1]}\" + }," + fi + done + + exec {fd}>&- # close fd (i.e. process substitution) + wait $cs_pid # wait for the subshell to finish + + # use 8 spaces + data="$data + $package + $md5sum + $filename + $installed_time" + done + + if [[ "$data" =~ ^.*,$ ]]; then + data=${data%?} + fi + + data="$data + } +}" + echo "$data" > "$path/test.txt" +} + +ddd={ date -d @10000000 +'%Y'; } +echo $ddd + +# write_config "/tmp/customer_281/szeged" "test.txt"