diff --git a/packages.json b/packages.json index a878b4c..ed022c7 100644 --- a/packages.json +++ b/packages.json @@ -1,11 +1,93 @@ [ - { - "pkgname": "wTerm", - "name": "Terminal", - "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/wTerm/README.md", - "category": "System", - "author": "xsang.le@gmail.com", - "version": "0.0.3-a", - "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/wTerm/build/release/wTerm.zip" - } -] + { + "pkgname": "About", + "name": "__(About AntOS)", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/About/README.md", + "category": "Other", + "author": "Xuan Sang LE", + "version": "0.0.1-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/About/build/release/About.zip" + }, + { + "pkgname": "ActivityMonitor", + "name": "Activity monitor", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ActivityMonitor/README.md", + "category": "System", + "author": "Xuan Sang LE", + "version": "0.0.1-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ActivityMonitor/build/release/ActivityMonitor.zip" + }, + { + "pkgname": "GraphEditor", + "name": "Graph Editor", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GraphEditor/README.md", + "category": "Office", + "author": "Xuan Sang LE", + "version": "0.0.4-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GraphEditor/build/release/GraphEditor.zip" + }, + { + "pkgname": "MarkOn", + "name": "Markdown editor", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/MarkOn/README.md", + "category": "Utils", + "author": "Xuan Sang LE", + "version": "0.0.1-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/MarkOn/build/release/MarkOn.zip" + }, + { + "pkgname": "OpenPage", + "name": "OpenPage", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/OpenPage/README.md", + "category": "Other", + "author": "Xuan Sang LE", + "version": "0.0.2-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/OpenPage/build/release/OpenPage.zip" + }, + { + "pkgname": "Preview", + "name": "Preview", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Preview/README.md", + "category": "Utils", + "author": "Xuan Sang LE", + "version": "0.0.1-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Preview/build/release/Preview.zip" + }, + { + "pkgname": "RemoteDesktop", + "name": "WVNC remote desktop", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/README.md", + "category": "Other", + "author": "", + "version": "0.0.1-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/build/release/RemoteDesktop.zip" + }, + { + "pkgname": "ShowCase", + "name": "ShowCase", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShowCase/README.md", + "category": "Other", + "author": "Xuan Sang LE", + "version": "0.0.1-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShowCase/build/release/ShowCase.zip" + }, + { + "pkgname": "TinyEditor", + "name": "TinyEditor", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/TinyEditor/README.md", + "category": "Other", + "author": "", + "version": "0.0.1-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/TinyEditor/build/release/TinyEditor.zip" + }, + { + "pkgname": "wTerm", + "name": "Terminal", + "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/wTerm/README.md", + "category": "System", + "author": "Xuan Sang LE", + "version": "0.0.1-a", + "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/wTerm/build/release/wTerm.zip" + } + +] \ No newline at end of file diff --git a/reposify.sh b/reposify.sh new file mode 100755 index 0000000..c740012 --- /dev/null +++ b/reposify.sh @@ -0,0 +1,51 @@ +#! /bin/bash + +set -e + +repodir=$1 +repofile=$2 + +function get_json_entry() +{ + cmd="cat $1 | sed -n 's/\"$2\"[[:space:]]*:[[:space:]]*\"\(.*\)\"[[:space:]]*,*/\1/p'|sed -e 's/^[[:space:]]*//'" + value=$(eval "$cmd") + echo "$value" +} + +function join_by { local IFS="$1"; shift; echo "$*"; } + +function gen_pkg_meta() +{ + author=$(get_json_entry "$1/package.json" "author") + name=$(get_json_entry "$1/package.json" "name") + category=$(get_json_entry "$1/package.json" "category") + version=$(get_json_entry "$1/package.json" "version") + printf "\t{\n" + printf "\t\t\"pkgname\": \"%s\",\n" "$2" + printf "\t\t\"name\": \"%s\",\n" "$name" + printf "\t\t\"description\": \"https://raw.githubusercontent.com/lxsang/antosdk-apps/master/%s/README.md\",\n" "$2" + printf "\t\t\"category\": \"%s\",\n" "$category" + printf "\t\t\"author\": \"%s\",\n" "$author" + printf "\t\t\"version\": \"%s\",\n" "$version" + printf "\t\t\"download\": \"https://raw.githubusercontent.com/lxsang/antosdk-apps/master/%s/build/release/%s.zip\"\n" "$2" "$2" + printf "\t}\n" +} +# generate packages meta-data +[ ! -d "$repodir" ] && echo "No such directory: $repodir" && exit 1 +[ -z "$repofile" ] && repofile="packages.json" +echo "[" > "$repofile" +for file in "$repodir"/* ; do + if [ -d "$file" ]; then + pkgname=$(basename "$file") + # test if it has release file + pkgpath="$file/build/release/$pkgname.zip" + if [ -f "$pkgpath" ] && [ -f "$file/package.json" ]; then + #read the package meta-data + meta=$(gen_pkg_meta "$file" "$pkgname") + printf "%s,\n" "$meta" >> "$repofile" + fi + fi +done +sed '$ s/,$//' < "$repofile" > "$repofile.tmp" +printf "\n]" >> "$repofile.tmp" +mv "$repofile.tmp" "$repofile"