summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2020-09-10 13:50:32 -0400
committerAndrew Cady <d@jerkface.net>2020-09-10 13:50:32 -0400
commit78a2b651d48450c841d86fd9baa02dff1c4cdce8 (patch)
treee9a1c9edf11a2c6cacc4402f02f7002988fca202
parentaeb39422452102a513686b3d334930c8aa3a09cc (diff)
publish a .deb
-rw-r--r--selfpublish.sh33
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
85SELF_VERSION='0.1'
86SELF_EXECUTABLE=$(realpath "$0")
85control_file() 87control_file()
86{ 88{
87 cat <<EOF 89 cat <<EOF
88Package: selfpublish-dot-sh-deps 90Version: ${SELF_VERSION}
91Package: selfpublish-dot-sh
89Description: selfpublish.sh dependency package 92Description: 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.
93EOF 96EOF
94 dependencies | fmt_dependencies 97 dependencies | fmt_dependencies
98 cat <<EOF
99File: /usr/share/doc/selfpublish-dot-sh/README.Debian 644
100 This gets overwritten :(
101File: /usr/bin/selfpublish.sh 755
102EOF
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
109equivocate() 120equivocate()
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
130ssh_keytag_to_path_fragment() 143ssh_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
304write_cgit_config() 322write_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
478DEBDEST=$(realpath .)
460[ "$NO_APT" ] || equivocate >&2 479[ "$NO_APT" ] || equivocate >&2
461 480
462APACHE_MODULES='status md rewrite ssl include cgi' 481APACHE_MODULES='status md rewrite ssl include cgi'