From 0c878e279b04b819055485b84a51e4138d9b08b8 Mon Sep 17 00:00:00 2001 From: surtur Date: Fri, 10 Apr 2020 02:36:53 +0200 Subject: [PATCH] initial commit --- README.md | 24 ++++++++++++++++++++ awdl | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 README.md create mode 100755 awdl diff --git a/README.md b/README.md new file mode 100644 index 0000000..6f9d671 --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# archwiki downloader + +[![works badge](https://cdn.jsdelivr.net/gh/nikku/works-on-my-machine@v0.2.0/badge.svg)](https://github.com/nikku/works-on-my-machine) + +This little script downloads the awesome [Archwiki](https://wiki.archlinux.org) for offline use and installs `wiki-search` and `wiki-search-html` scripts provided by `arch-wiki-lite`.
+It is meant to be used on fedora (tested on f32) but it shouldn't be too hard to edit it for another distributions. + +### purpose +As of now there are no native fedora packages doing this job, this script solves it for me.
+Inspiration taken from the PKGBUILDs of [arch-wiki-docs](https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/arch-wiki-docs) and [arch-wiki-lite](https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/arch-wiki-lite). + +### deps +It comes with just a few dependencies: + +* `python3` +* `python3-simplemediawiki` +* `python3-cssselect` +* `python3-lxml` +* `dialog` + +...plus I used `rsync`, feel free to change it to `cp` (and update paths accordingly) + +### license +[WTFPL](http://wtfpl.net) diff --git a/awdl b/awdl new file mode 100755 index 0000000..283b2ab --- /dev/null +++ b/awdl @@ -0,0 +1,67 @@ +#!/bin/bash + +# archwiki downloader +# as there's no fedora pkg atm, let's do this ourselves +# inspiration taken from PKGBUILDs of arch-wiki-docs and arch-wiki-lite +# https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/arch-wiki-docs +# https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/arch-wiki-lite +# +# deps: python3 python3-simplemediawiki python3-cssselect python3-lxml dialog +# plus I used rsync, feel free to change it to cp (and some paths accordingly) +# +# author of this little script +# -- wanderer +# https://dotya.ml/contact/ +# license: wtfpl + +echo -e "archwiki downloader" +if [ $(id -u) != 0 ]; then + echo "[x] not root, not running, sorry" + exit 9001 +fi + +deps=("python3" "python3-simplemediawiki" "python3-cssselect" "python3-lxml" "dialog" "rsync") + +echo "[*] checking deps" +for pkg in "${deps[@]}"; do + dnf list installed $pkg > /dev/null 2>&1 + if [ $(echo $?) -eq 1 ]; then + echo "[x] package \"$pkg\" could not be found" + echo "[i] you can install the dependencies with the following command" + echo "dnf install ${deps[*]}" + echo "[*] exiting now" && exit 9001 + fi +done + +dest_html=/usr/share/doc/arch-wiki/html/ +dest_text=/usr/share/doc/arch-wiki/text/ +mkdir -pv $dest_html +mkdir -pv $dest_text + +mktemp -d && cd /tmp/$(ls -t /tmp | grep tmp. | head -1) +workdir=$(pwd) +mkdir -pv $workdir/build_wiki +mkdir -pv /etc/dialog.d/ + +echo "[*] getting sources" +curl http://kmkeen.com/arch-wiki-lite/arch-wiki-lite.tar.gz | bsdtar xfv - +git clone https://github.com/lahwaacz/arch-wiki-docs.git + +echo "[*] getting archwiki files" +cd $workdir/arch-wiki-docs +LANG=en_US.UTF-8 python3 arch-wiki-docs.py --output-directory $workdir/build_wiki --clean --safe-filenames +rsync -auvP build_wiki/ $dest_html + +echo "[*] generating text file" +cd $workdir/arch-wiki-lite +LC_ALL=en_US.UTF-8 python3 wiki_lite.py +rsync -auvP wiki/ $dest_text +rsync -auvP wiki-search wiki-search-html /bin/ +chmod -v 0755 /bin/wiki-search +chmod -v 0755 /bin/wiki-search-html +rsync -auvP wiki-search.dialog.rc /etc/dialog.d/ + +echo "[*] done, removing workdir" +cd $workdir/../ +trap "rm -rfv $workdir" 0 1 3 15 9001 +exit $?