base16384: add new package
author源 文雨 <fumiama@foxmail.com>
Wed, 14 Dec 2022 03:48:25 +0000 (03:48 +0000)
committerTianling Shen <cnsztl@gmail.com>
Wed, 14 Dec 2022 14:05:14 +0000 (22:05 +0800)
Encode binary files to printable utf16be.
See more at https://github.com/fumiama/base16384.

Signed-off-by: 源 文雨 <fumiama@foxmail.com>
utils/base16384/Makefile [new file with mode: 0644]
utils/base16384/test.sh [new file with mode: 0644]

diff --git a/utils/base16384/Makefile b/utils/base16384/Makefile
new file mode 100644 (file)
index 0000000..90fe988
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-Identifier-License: GPL-3.0-or-later
+#
+# Copyright (C) 2022 源 文雨 <fumiama@foxmail.com>
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=base16384
+PKG_VERSION:=2.2.2
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/fumiama/base16384/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=948da6d9eca3af64123a7df1aa0f71a81e38ab02815ab2218e71a7aface0035e
+
+PKG_MAINTAINER:=源 文雨 <fumiama@foxmail.com>
+PKG_LICENSE:=GPL-3.0-or-later
+PKG_LICENSE_FILES:=LICENSE
+
+CMAKE_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/base16384
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Encode binary files to printable utf16be
+  URL:=https://github.com/fumiama/base16384
+endef
+
+define Package/libbase16384
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=Base16384 library
+  URL:=https://github.com/fumiama/base16384
+endef
+
+define Package/base16384/description
+  There are 16384 Chinese characters (from \u4E00 to \u8DFF)
+  as the "alphabet", just like what base64 did.
+  If length of the data has a remainder after mod 7,
+  an unicode Chinese character \u3Dxx will be appended to present it
+  with xx ranging from 01 to 06.
+endef
+
+define Package/libbase16384/description
+       $(call Package/base16384/description)
+endef
+
+define Package/base16384/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/base16384 $(1)/usr/bin/base16384
+endef
+
+define Package/libbase16384/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libbase16384.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,base16384))
+$(eval $(call BuildPackage,libbase16384))
diff --git a/utils/base16384/test.sh b/utils/base16384/test.sh
new file mode 100644 (file)
index 0000000..fcc070d
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+case "$1" in
+       "base16384")
+        i=1
+        while [ $i -le 100 ]; do
+            s="$(head /dev/urandom | head -c $i)"
+            if [ "$(echo $s)" != "$(echo $s | base16384 -e - - | base16384 -d - -)" ]; then
+                exit $i
+            fi
+            i=$( expr $i + 1 )
+        done
+esac
+
+exit 0