diff options
author | Andrew Cady <d@jerkface.net> | 2020-09-10 13:50:32 -0400 |
---|---|---|
committer | Andrew Cady <d@jerkface.net> | 2020-09-10 13:50:32 -0400 |
commit | 78a2b651d48450c841d86fd9baa02dff1c4cdce8 (patch) | |
tree | e9a1c9edf11a2c6cacc4402f02f7002988fca202 | |
parent | aeb39422452102a513686b3d334930c8aa3a09cc (diff) |
publish a .deb
-rw-r--r-- | selfpublish.sh | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/selfpublish.sh b/selfpublish.sh index d16ac53..d2bc577 100644 --- a/selfpublish.sh +++ b/selfpublish.sh | |||
@@ -82,16 +82,25 @@ fmt_dependencies() | |||
82 | } | 82 | } |
83 | 83 | ||
84 | 84 | ||
85 | SELF_VERSION='0.1' | ||
86 | SELF_EXECUTABLE=$(realpath "$0") | ||
85 | control_file() | 87 | control_file() |
86 | { | 88 | { |
87 | cat <<EOF | 89 | cat <<EOF |
88 | Package: selfpublish-dot-sh-deps | 90 | Version: ${SELF_VERSION} |
91 | Package: selfpublish-dot-sh | ||
89 | Description: selfpublish.sh dependency package | 92 | Description: selfpublish.sh dependency package |
90 | This package depends on the dependencies of the | 93 | This package depends on the dependencies of the |
91 | selfpublish.sh script, and is installed by that | 94 | selfpublish.sh script, and is installed by that |
92 | script to self-satisfy those dependencies. | 95 | script to self-satisfy those dependencies. |
93 | EOF | 96 | EOF |
94 | dependencies | fmt_dependencies | 97 | dependencies | fmt_dependencies |
98 | cat <<EOF | ||
99 | File: /usr/share/doc/selfpublish-dot-sh/README.Debian 644 | ||
100 | This gets overwritten :( | ||
101 | File: /usr/bin/selfpublish.sh 755 | ||
102 | EOF | ||
103 | sed -e 's/^/ /' < "$SELF_EXECUTABLE" | ||
95 | echo | 104 | echo |
96 | } | 105 | } |
97 | 106 | ||
@@ -100,31 +109,35 @@ control_file_unchanged() | |||
100 | ( | 109 | ( |
101 | destdir=$(mktemp -d) | 110 | destdir=$(mktemp -d) |
102 | trap 'rm -r "$destdir"' EXIT | 111 | trap 'rm -r "$destdir"' EXIT |
112 | [ "$(dpkg-query -f '${Version}' -W selfpublish-dot-sh)" = "${SELF_VERSION}" ] || return | ||
113 | |||
103 | dependencies > want-dependencies | 114 | dependencies > want-dependencies |
104 | dpkg-query -f '${Depends}\n' -W selfpublish-dot-sh-deps | sed 's/, */\n/g' | sort -u > have-dependencies | 115 | dpkg-query -f '${Depends}\n' -W selfpublish-dot-sh | sed 's/, */\n/g' | sort -u > have-dependencies |
105 | diff -q want-dependencies have-dependencies | 116 | diff -q want-dependencies have-dependencies |
106 | ) | 117 | ) |
107 | } | 118 | } |
108 | 119 | ||
109 | equivocate() | 120 | equivocate() |
110 | { | 121 | { |
111 | if dpkg-query -s selfpublish-dot-sh-deps | grep -q '^Status: install ok installed' 2>/dev/null | 122 | if dpkg-query -s selfpublish-dot-sh | grep -q '^Status: install ok installed' 2>/dev/null |
112 | then | 123 | then |
113 | if ! force | 124 | if ! force |
114 | then | 125 | then |
115 | control_file_unchanged && return | 126 | control_file_unchanged && return |
116 | fi | 127 | fi |
117 | as_root dpkg -r selfpublish-dot-sh-deps | ||
118 | fi | 128 | fi |
119 | which equivs-build >/dev/null 2>&1 || apt_install equivs | 129 | which equivs-build >/dev/null 2>&1 || apt_install equivs |
120 | ( | 130 | ( |
121 | destdir=$(mktemp -d) | 131 | destdir=$(mktemp -d) |
122 | cd "$destdir" | 132 | cd "$destdir" |
123 | control_file > ./control | 133 | control_file > ./control |
124 | cat ./control | 134 | # cat ./control |
125 | equivs-build ./control >&2 | 135 | equivs-build ./control >&2 |
126 | dpkg_install selfpublish-dot-sh-deps_1.0_all.deb | 136 | DEB=selfpublish-dot-sh_${SELF_VERSION}_all.deb |
127 | ) | 137 | as_root dpkg -r selfpublish-dot-sh |
138 | dpkg_install "$DEB" | ||
139 | install -m0644 "$DEB" "$DEBDEST" | ||
140 | ) || exit | ||
128 | } | 141 | } |
129 | 142 | ||
130 | ssh_keytag_to_path_fragment() | 143 | ssh_keytag_to_path_fragment() |
@@ -299,6 +312,11 @@ install_self_to_site() | |||
299 | cp -Tuv "$src" "$dst" >&2 | 312 | cp -Tuv "$src" "$dst" >&2 |
300 | cp -Tuv "$src" "$dst".txt >&2 | 313 | cp -Tuv "$src" "$dst".txt >&2 |
301 | fi | 314 | fi |
315 | DEB="selfpublish-dot-sh_${SELF_VERSION}_all.deb" | ||
316 | if [ -e "$DEB" ] | ||
317 | then | ||
318 | cp -Tuv "$DEB" "$SITE_DIR/public_html/$DEB" | ||
319 | fi | ||
302 | } | 320 | } |
303 | 321 | ||
304 | write_cgit_config() | 322 | write_cgit_config() |
@@ -457,6 +475,7 @@ check_tls() | |||
457 | curl -s -S -I https://"$1" >/dev/null | 475 | curl -s -S -I https://"$1" >/dev/null |
458 | } | 476 | } |
459 | 477 | ||
478 | DEBDEST=$(realpath .) | ||
460 | [ "$NO_APT" ] || equivocate >&2 | 479 | [ "$NO_APT" ] || equivocate >&2 |
461 | 480 | ||
462 | APACHE_MODULES='status md rewrite ssl include cgi' | 481 | APACHE_MODULES='status md rewrite ssl include cgi' |