/usr/bin/asterisk-config-custom is in asterisk 1:13.14.1~dfsg-2+deb9u4.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 | #!/bin/sh
#
# asterisk-config-custom
# script to help creating a 'asterisk-config-custom' .deb package
#
#
# Created by: Geert Stappers <stappers@stappers.it>
# And distributed under the terms of the GPL
#
#
acc_usage ()
{
cat << HERE
asterisk-config-custom {command}
Where 'command' is 'init', 'next', 'sync' or 'help'
init: Creates directory 'my-asterisk-config' with content
next: Provides instruction for next step
sync: Mostly \`rsync --archive /etc/asterisk etc_asterisk\`
help: Prints _another_ help text
HERE
}
acc_help ()
{
cat << HERE
Program 'asterisk-config-custom' is for helping you making
your 'asterisk-config-custom' .deb package.
Typical work flow is running
asterisk-config-custom init
only once.
Now you have a directory named
my-asterisk-config
feel free to rename it
Important is that it has a debian/ directory
and an etc_asterisk/ directory
Change working directory with
cd my-asterisk-config # or to what you renamed it.
Edit files in etc_asterisk. You may use
asterisk-config-custom sync
to get you a starting point.
Create the actual package with
dpkg-buildpackge -uc -us
And install with
sudo dpkg -i ../asterisk-config-custom_*_all.deb
This package will be considered as an upgrade to the default
\`asterisk-config\` package and hence that package will will be removed
upon isntalling the custom package. However, it will not be purged and
hence all configuration files in \`/etc/asterisk\` from it will remain
installed. In order to remove them, you'll need to purge the package
\`asterisk-config\'.
Alternatively, you can install the custom package before installing
Asterisk.
HERE
}
acc_init ()
{
# Creates a diretory and puts files in it,
# including the Debian packaging files.
mkdir --parents my-asterisk-config/debian/source
cat << HERE > my-asterisk-config/README
In this directory you can / should run
dpkg-buildpackage -uc -us
to get your 'asterisk-config-custom' package build.
If you don't have this package installed, install the package dpkg-dev .
HERE
cat << LastLine > my-asterisk-config/Makefile
#
# Makefile
#
all: etc_asterisk/asterisk.conf \
usr/share/doc/asterisk-config/examples/configs/modules.conf.sample
@echo "FYI: (minimal set of) configuration files are available"
etc_asterisk/asterisk.conf:
@mkdir --parents etc_asterisk
echo "; only a place holder" > etc_asterisk/asterisk.conf
usr/share/doc/asterisk-config/examples/configs/modules.conf.sample:
@mkdir --parents usr/share/doc/asterisk-config/examples/configs
echo "; place holder" \\
> usr/share/doc/asterisk-config/examples/configs/modules.conf.sample
install:
install --directory \$(DESTDIR)/usr
install --directory \$(DESTDIR)/etc/asterisk
rsync --archive --delete usr/* \$(DESTDIR)/usr
rsync --archive --delete etc_asterisk/* \$(DESTDIR)/etc/asterisk
# l l
LastLine
cat << LastLine > my-asterisk-config/acc.config
# This file will be read during \`asterisk-config-custom sync\`
#
ACC_SYNC_CONFIG_EXAMPLES=Yes
# another value as 'Yes' wouldn't sync the configuration examples
#
#
# l l
LastLine
##--------------------------------------------
# Those who are familiar with Debian packaging
# can consider the rest of this function as a dedicated `dh_make`.
cat << LastLine > my-asterisk-config/debian/control
Source: asterisk-config-custom
Section: comm
Priority: optional
Maintainer: Me Myself <${LOGNAME}@$( hostname --fqdn )>
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.5
Homepage: <insert the upstream URL, if relevant>
#Vcs-Git: git://anonscm.debian.org/collab-maint/asterisk-config-custom.git
#Vcs-Browser: http://anonscm.debian.org/?p=collab-maint/asterisk-config-custom.git;a=summary
Package: asterisk-config-custom
Architecture: all
Depends: \${misc:Depends}
Recommends: asterisk
Conflicts: asterisk-config
Replaces: asterisk-config
Description: Custom configuration files for Asterisk
Package that contains custom configuration files for Asterisk.
.
It is to keep _your_ config files while upgrading Asterisk.
.
The trick is that Asterisk depends
on asterisk-config OR asterisk-config-custom
LastLine
cat << LastLine > my-asterisk-config/debian/changelog
asterisk-config-custom (0.6) unstable; urgency=medium
* Created with \`asterisk-config-custom init\`
-- Me Myself <${LOGNAME}@$( hostname --fqdn )> $( date --rfc-2822 )
asterisk-config-custom (0.4) unstable; urgency=low
* Initial release (Closes: #760032).
-- Geert Stappers <stappers@stappers.it> Fri, 29 Aug 2014 16:25:44 +0200
LastLine
cat << LastLine > my-asterisk-config/debian/copyright
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: asterisk-config-custom
Source: <url://example.com>
Files: *
Copyright: <years> <put author's name and email here>
<years> <likewise for another author>
License: <special license>
<Put the license of the package here indented by 1 space>
<This follows the format of Description: lines in control file>
.
<Including paragraphs>
LastLine
cat << LastLine > my-asterisk-config/debian/rules
#!/usr/bin/make -f
# See debhelper(7)
#
# output every command that modifies files on the build system.
#DH_VERBOSE = 1
# main packaging script based on dh7 syntax
%:
dh \$@
# l l
LastLine
chmod a+x my-asterisk-config/debian/rules
cat << LastLine > my-asterisk-config/debian/preinst
#! /bin/sh
# preinst script
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <new-preinst> \`install'
# * <new-preinst> \`install' <old-version>
# * <new-preinst> \`upgrade' <old-version>
# * <old-preinst> \`abort-upgrade' <new-version>
#
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "\$1" in
install|upgrade)
# chan_modem was removed on 1.4+
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \\\`\$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
LastLine
cat << LastLine > my-asterisk-config/debian/postinst
#! /bin/sh
set -e
# summary of how this script can be called:
# * <postinst> \`configure' <most-recently-configured-version>
# * <old-postinst> \`abort-upgrade' <new version>
# * <conflictor's-postinst> \`abort-remove' \`in-favour' <package>
# <new-version>
# * <deconfigured's-postinst> \`abort-deconfigure' \`in-favour'
# <failed-install-package> <version> \`removing'
# <conflicting-package> <version>
case "\$1" in
configure)
set +e # ignore errors temporarily
# find conffiles under /etc/asterisk belonging to asterisk-config-custom
# and chown them to user asterisk.
dpkg-query -W -f='\${Conffiles}\n' asterisk-config-custom 2>/dev/null | \\
sed -nr -e 's; (/etc/asterisk/.*) [0-9a-f]*;\1;p' | \\
while read conffile; do
chown asterisk: \${conffile} 2>/dev/null
done
# handle them in the end with a glob since it's way faster
dpkg-statoverride --quiet --list '/etc/asterisk/*' | while read STAT; do
chown \`echo \$STAT | cut -d' ' -f 1,2,4 | sed 's/ /:/'\` \\
2>/dev/null
done
set -e
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \\\`\$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
LastLine
cat << LastLine > my-asterisk-config/debian/lintian-overrides
asterisk-config-custom: non-standard-file-perm
LastLine
echo 9 > my-asterisk-config/debian/compat
echo '3.0 (native)' > my-asterisk-config/debian/source/format
}
acc_sync ()
{
mkdir --parents etc_asterisk
# assuming there are files in /etc/asterisk/
rsync --archive --delete /etc/asterisk/* etc_asterisk/
if [ -r ./acc.config ] ; then
. ./acc.config
else
echo 'E: file "./acc.config" not readable'
echo "I: Are you in the directory that \`${0} init\` created?"
exit 1
fi
if [ x${ACC_SYNC_CONFIG_EXAMPLES} = xYes ] ; then
ACC_EX=usr/share/doc/asterisk-config/examples
# using asterisk-config directory
mkdir --parents ${ACC_EX}
rsync --archive --delete /${ACC_EX}/* ${ACC_EX}
fi
}
acc_next ()
{
if ! which dpkg-buildpackage > /dev/null ; then
echo 'E: Program `dpkg-buildpackage` is not installed.'
echo 'I: It is in the Debian package `dpkg-dev`.'
echo 'I: Installing it with `apt-get install build-essential`,'
echo 'I: will also install the program `make` that is also needed.'
exit 1
fi
if grep --quiet 'Package: asterisk-config-custom' debian/control ; then
echo 'dpkg-buildpackage -uc -us # Running this now'
dpkg-buildpackage -uc -us
else
echo 'E: debian/control file for package asterisk-config-custom not found'
echo "I: Are you in the directory that \`${0} init\` created?"
exit 1
fi
}
# main()
case $1 in
init)
acc_init
;;
next)
acc_next
;;
sync)
acc_sync
;;
help)
acc_help
;;
*)
acc_usage
;;
esac
# l l
|