summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.txt14
-rwxr-xr-xintel-linux-gfx-mirror-docs243
2 files changed, 257 insertions, 0 deletions
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..cca12a3
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,14 @@
+Overview
+========
+
+This project provides scripts for working with Intel Linux graphics
+documentation.
+
+
+Scripts
+=======
+
+intel-linux-gfx-mirror-docs
+---------------------------
+Download the Intel OpenSource HD Graphics Programmer's Reference Manuals from
+http://intellinuxgraphics.org.
diff --git a/intel-linux-gfx-mirror-docs b/intel-linux-gfx-mirror-docs
new file mode 100755
index 0000000..5fb2b42
--- /dev/null
+++ b/intel-linux-gfx-mirror-docs
@@ -0,0 +1,243 @@
+#!/bin/bash
+
+set -e
+
+kw_prog_name="$(basename $0)"
+kw_config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/intel-linux-gfx-mirror-docs"
+
+# These vars are set in ~/.config/intel-linux-docs/config.
+DOCDIR=
+PREHOOK=
+POSTHOOK=
+
+function kw_print_help() {
+ echo "NAME"
+ echo " $kw_prog_name"
+ echo ""
+ echo "SYNOPSIS"
+ echo " $kw_prog_name [-h|--help] <all|ivb|snb|ilk|g45|g35>"
+ echo ""
+ echo "DESCRIPTION"
+ echo " Download the Intel OpenSource HD Graphics Programmer's Reference"
+ echo " Manuals from http://intellinuxgraphics.org."
+}
+
+function kw_fatal_error() {
+ echo "error: $kw_prog_name: $@"
+ exit 1
+}
+
+function kw_usage_error() {
+ echo "usage error: $kw_prog_name"
+ echo
+ kw_print_help
+ exit 1
+}
+
+function kw_load_config() {
+ local conf_file="$kw_config_dir/conf"
+ local example_file="$conf_file.example"
+
+ # Write out example file.
+ mkdir -p "$kw_config_dir"
+ cat > "$example_file" <<-EOF
+ #DOCDIR="\$HOME/doc/intel-linux-gfx/prm"
+ #PREHOOK=
+ #POSTHOOK=
+ EOF
+
+ if [[ -r "$conf_file" ]]; then
+ source "$conf_file"
+ fi
+
+ # Set defaults for config vars.
+ DOCDIR="${DOCDIR:-$HOME/doc/intel-linux-gfx/prm}"
+}
+
+function kw_run_prehook() {
+ if [[ "$PREHOOK" ]]; then
+ cd "$kw_config_dir"
+ "$PREHOOK" "$@"
+ fi
+}
+
+function kw_run_posthook() {
+ if [[ "$POSTHOOK" ]]; then
+ cd "$kw_config_dir"
+ "$POSTHOOK" "$@"
+ fi
+}
+
+function kw_download_files() {
+ local outdir="$DOCDIR/$1"
+ shift
+
+ local cutdirs=$(echo $1 | sed 's@[^/]@@g' | wc -c)
+
+ for x in "$@"; do
+ wget \
+ "--mirror" \
+ "--no-parent" \
+ "--directory-prefix=$outdir" \
+ "--no-host-directories" \
+ "--cut-dirs=$cutdirs" \
+ "http://intellinuxgraphics.org/$x"
+ done
+}
+
+function kw_mirror_ivb() {
+ kw_run_prehook ivb
+
+ kw_download_files 'ivb' \
+ \
+ 'documentation/IVB/IHD_OS_Vol1_Part1.pdf' \
+ 'documentation/IVB/IHD_OS_Vol1_Part2.pdf' \
+ 'documentation/IVB/IHD_OS_Vol1_Part3.pdf' \
+ 'documentation/IVB/IHD_OS_Vol1_Part4.pdf' \
+ 'documentation/IVB/IHD_OS_Vol1_Part5.pdf' \
+ 'documentation/IVB/IHD_OS_Vol1_Part6.pdf' \
+ 'documentation/IVB/IHD_OS_Vol1_Part7.pdf' \
+ \
+ 'documentation/IVB/IHD_OS_Vol2_Part1.pdf' \
+ 'documentation/IVB/IHD_OS_Vol2_Part2.pdf' \
+ 'documentation/IVB/IHD_OS_Vol2_Part3.pdf' \
+ \
+ 'documentation/IVB/IHD_OS_Vol3_Part1.pdf' \
+ 'documentation/IVB/IHD_OS_Vol3_Part2.pdf' \
+ 'documentation/IVB/IHD_OS_Vol3_Part3.pdf' \
+ 'documentation/IVB/IHD_OS_Vol3_Part4.pdf' \
+ \
+ 'documentation/IVB/IHD_OS_Vol4_Part1.pdf' \
+ 'documentation/IVB/IHD_OS_Vol4_Part2.pdf' \
+ 'documentation/IVB/IHD_OS_Vol4_Part3.pdf' \
+
+ kw_run_posthook ivb
+}
+
+function kw_mirror_snb() {
+ kw_run_prehook snb
+
+ kw_download_files 'snb' \
+ \
+ 'documentation/SNB/IHD_OS_Vol1_Part1.pdf' \
+ 'documentation/SNB/IHD_OS_Vol1_Part2.pdf' \
+ 'documentation/SNB/IHD_OS_Vol1_Part3.pdf' \
+ 'documentation/SNB/IHD_OS_Vol1_Part4.pdf' \
+ 'documentation/SNB/IHD_OS_Vol1_Part5.pdf' \
+ \
+ 'documentation/SNB/IHD_OS_Vol2_Part1.pdf' \
+ 'documentation/SNB/IHD_OS_Vol2_Part2.pdf' \
+ \
+ 'documentation/SNB/IHD_OS_Vol3_Part1.pdf' \
+ 'documentation/SNB/IHD_OS_Vol3_Part2.pdf' \
+ 'documentation/SNB/IHD_OS_Vol3_Part3.pdf' \
+ \
+ 'documentation/SNB/IHD_OS_Vol4_Part1.pdf' \
+ 'documentation/SNB/IHD_OS_Vol4_Part2.pdf' \
+
+ kw_run_posthook snb
+}
+
+function kw_mirror_ilk() {
+ kw_run_prehook ilk
+
+ kw_download_files 'ilk' \
+ \
+ 'IHD_OS_Vol1_Part1.pdf' \
+ 'IHD_OS_Vol1_Part2.pdf' \
+ 'IHD_OS_Vol1_Part3.pdf' \
+ 'IHD_OS_Vol1_Part4.pdf' \
+ 'IHD_OS_Vol1_Part5.pdf' \
+ \
+ 'IHD_OS_Vol2_Part1.pdf' \
+ 'IHD_OS_Vol2_Part2.pdf' \
+ \
+ 'IHD_OS_Vol3_Part1.pdf' \
+ 'IHD_OS_Vol3_Part2.pdf' \
+ 'IHD_OS_Vol3_Part3.pdf' \
+ \
+ 'IHD_OS_Vol4_Part1.pdf' \
+ 'IHD_OS_Vol4_Part2.pdf' \
+
+ kw_run_posthook ilk
+}
+
+function kw_mirror_g45() {
+ kw_run_prehook g45
+
+ kw_download_files 'g45' \
+ 'Vol_1a_G45_core_updated.pdf' \
+ 'Vol_2_G45_3dmedia.pdf' \
+ 'Vol_3_G45_register.pdf' \
+ 'Vol_4_G45_subsystem.pdf' \
+
+ kw_run_posthook g45
+}
+
+function kw_mirror_g35() {
+ kw_run_prehook g35
+
+ kw_download_files 'g35' \
+ 'VOL_1_graphics_core.pdf' \
+ 'VOL_2_3D_media_web_updated.pdf' \
+ 'VOL_3_display_registers_updated.pdf' \
+ 'VOL_4_subsystem_core.pdf' \
+
+ kw_run_posthook g35
+}
+
+# ----------------------------------------------
+# main
+# ----------------------------------------------
+
+
+if [[ $# -eq 0 ]]; then
+ kw_usage_error
+fi
+
+if [[ "$1" = "-h" ]] || [[ "$1" = "--help" ]]; then
+ kw_print_help
+ exit
+fi
+
+for x in "$@"; do
+ case "$x" in
+ "all"|"ivb"|"snb"|"ilk"|"g45"|"g35")
+ ;;
+ *)
+ kw_usage_error
+ ;;
+ esac
+done
+
+kw_load_config
+
+for api in "$@"; do
+ case "$1" in
+ "ivb")
+ kw_mirror_ivb
+ ;;
+ "snb")
+ kw_mirror_snb
+ ;;
+ "ilk")
+ kw_mirror_ilk
+ ;;
+ "g45")
+ kw_mirror_g45
+ ;;
+ "g35")
+ kw_mirror_g35
+ ;;
+ "all")
+ kw_mirror_ivb
+ kw_mirror_snb
+ kw_mirror_ilk
+ kw_mirror_g45
+ kw_mirror_g35
+ ;;
+ *)
+ kw_usage_error
+ ;;
+ esac
+done