Commit d16765e9 authored by Dmytro Bogatov's avatar Dmytro Bogatov 💕

Merge branch '23-debian-package-to-control-status-site' into 'master'

Resolve "Debian package to control status site"

Closes #23

See merge request !16
parents 2269aefc 2b60193a
Pipeline #584 passed with stages
in 6 minutes and 10 seconds
POSTGRES_DB=statussite
POSTGRES_USER=statususer
POSTGRES_PASSWORD=SomethingWeird15
# BRANCH TAG (DO NOT MODIFY)
......@@ -53,3 +53,6 @@ articles/site/
documentation/out/
debug
# Debian build artifacts
debian/build
......@@ -40,7 +40,6 @@ build-app:
script:
- export ASPNETCORE_ENVIRONMENT="Production"
- printf "{\"Version\":{\"GitHash\":\"%s\"}}" $CI_BUILD_REF > src/version.json
- yarn config set registry https://registry.npmjs.cf/ # TODO: remove workaround
- ./build.sh
artifacts:
expire_in: 90 min
......@@ -110,7 +109,7 @@ blc-docs:
## RELEASE
release-all:
release-app-docs:
stage: release
dependencies:
- build-app
......@@ -128,3 +127,14 @@ release-all:
- appsettings.yml.example
tags:
- shell
release-debian:
stage: release
image: dbogatov/docker-containers:debian-latest
script:
- ./build.sh -f build-debian-package
artifacts:
paths:
- debian/build/*
tags:
- docker
......@@ -29,6 +29,7 @@
* Badges
- System health
- Individual metrics
* Debian package tool to control the app
* Rich API
* Served as a docker composition - easy to install, configure and update
* Different databases for old and recent data
......
# Deployment
## TL;DR
## The new way
Install status site official debian package - control tool.
* Make sure you have `docker` [installed](https://docs.docker.com/engine/installation/) and `docker-compose` [installed](https://docs.docker.com/compose/install/).
* Add `apt.dbogatov.org`'s key. Run `sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7BAD7958`.
* Add `apt.dbogatov.org` repository. Run `sudo add-apt-repository "deb http://apt.dbogatov.org/ trusty main"`.
* Update package listings. Run `sudo apt-get update`.
* Install `status-ctl`. Run `sudo apt-get install status-ctl`.
This will install `status-ctl` in your `/usr/bin/` directory and will create config files in `/etc/status-site/` directory.
* Launch the app. Run `status-ctl start`.
Great! The app is served on port 5555!
### To update
Update control tool the way you would update any other debian package.
`sudo apt-get update` and `sudo apt-get upgrade`.
### What the tool can do
Run `status-ctl help` or `man status-ctl` to view the available options and commands.
## The old way
Make sure you have [Docker](https://www.docker.com) and [Docker compose](https://docs.docker.com/compose/) installed.
Run the following command in a directory where you want your configuration files to be.
......
......@@ -30,6 +30,7 @@
* Badges
- System health
- Individual metrics
* Debian package tool to control the app
* Rich API
* Served as a docker composition - easy to install, configure and update
* Different databases for old and recent data
......
......@@ -250,6 +250,36 @@ build-for-compose () {
build-docker-images
}
## DEBIAN PACKAGE
build-debian-package () {
cd $CWD/debian
echo "(Re)creating a temporary directory for building..."
rm -rf build/
mkdir -p build/status-ctl/
echo "Copying .jar file, wrapper and scripts..."
cp status-ctl.sh build/status-ctl/
cp ../src/appsettings.production.yml build/status-ctl/
cp ../docker-compose.yml build/status-ctl/
cp ../.env.example build/status-ctl/.env
cp -r Makefile debian/ build/status-ctl
printf "\n\nDOTNET_TAG=master" >> build/status-ctl/.env
echo "Building debian package..."
cd build/status-ctl
debuild -us -uc
echo "Cleaning tmp files..."
cd ../..
rm -rf build/status-ctl
echo "Done!"
}
## APP BUILDERS
build-app () {
......
......@@ -9,7 +9,7 @@
"bootstrap": "^3.3.7",
"bootstrap-notify": "^3.1.3",
"bootstrap-select": "^1.12.2",
"chosen": "^1.6.2",
"chosen": "^0.0.2",
"datatables.net": "^1.10.13",
"datatables.net-bs": "^1.10.12",
"datatables.net-dt": "^1.10.12",
......@@ -18,7 +18,7 @@
"eonasdan-bootstrap-datetimepicker": "^4.17.47",
"flot": "^0.8.0-alpha",
"fullcalendar": "~3.0.0",
"install": "~1.0.4",
"install": "^0.10.1",
"jquery": "2.2.4",
"jquery-mask-plugin": "igorescobar/jQuery-Mask-Plugin#^1.14.0",
"jquery-placeholder": "^2.3.1",
......
......@@ -10,9 +10,15 @@ animate.css@^3.5.2:
version "3.5.2"
resolved "https://registry.yarnpkg.com/animate.css/-/animate.css-3.5.2.tgz#91e668dc069a808e5e499514867b97aae0166c36"
ansi-styles@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
dependencies:
color-convert "^1.9.0"
autosize@^3.0.17:
version "3.0.20"
resolved "https://registry.yarnpkg.com/autosize/-/autosize-3.0.20.tgz#e343ea7c5603834738169420f0349dc953e62a9e"
version "3.0.21"
resolved "https://registry.yarnpkg.com/autosize/-/autosize-3.0.21.tgz#f182f40d17757d978a139a4c9ca40c4c0e448603"
big.js@^3.1.3:
version "3.1.3"
......@@ -23,8 +29,8 @@ bootstrap-notify@^3.1.3:
resolved "https://registry.yarnpkg.com/bootstrap-notify/-/bootstrap-notify-3.1.3.tgz#7e98b3a696cf452a7b56727f0b3316a90037c10b"
bootstrap-select@^1.12.2:
version "1.12.2"
resolved "https://registry.yarnpkg.com/bootstrap-select/-/bootstrap-select-1.12.2.tgz#58d095b3fd584b31443866fbe39b6fdd4e4e12a4"
version "1.12.4"
resolved "https://registry.yarnpkg.com/bootstrap-select/-/bootstrap-select-1.12.4.tgz#7f15d3c0ce978868d9c09c70f96624f55fa02ee1"
dependencies:
jquery ">=1.8"
......@@ -32,39 +38,49 @@ bootstrap@^3.3, bootstrap@^3.3.7:
version "3.3.7"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71"
buffer-shims@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
chalk@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.0.1.tgz#dbec49436d2ae15f536114e76d14656cdbc0f44d"
dependencies:
ansi-styles "^3.1.0"
escape-string-regexp "^1.0.5"
supports-color "^4.0.0"
chosen@^1.6.2:
chosen@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/chosen/-/chosen-0.0.2.tgz#217701668ffb3bc26f1d80a4cf0300db2ad66794"
colors@^1.0.3:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
color-convert@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
dependencies:
color-name "^1.1.1"
color-name@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
datatables.net-bs@^1.10.12:
version "1.10.13"
resolved "https://registry.yarnpkg.com/datatables.net-bs/-/datatables.net-bs-1.10.13.tgz#794ab40a21afdf8b40ff762f7ea9a06ead9f8a2c"
version "1.10.15"
resolved "https://registry.yarnpkg.com/datatables.net-bs/-/datatables.net-bs-1.10.15.tgz#b2c2261007d84ca5b5abf56c18edc227e0da1a4d"
dependencies:
datatables.net ">=1.10.9"
jquery ">=1.7"
datatables.net-dt@^1.10.12:
version "1.10.13"
resolved "https://registry.yarnpkg.com/datatables.net-dt/-/datatables.net-dt-1.10.13.tgz#56836af12d980a162c7152422cb07cd535980d73"
version "1.10.15"
resolved "https://registry.yarnpkg.com/datatables.net-dt/-/datatables.net-dt-1.10.15.tgz#cc67136c569888acf34687e34a0aeaa99378bbc6"
dependencies:
datatables.net ">=1.10.9"
jquery ">=1.7"
datatables.net@>=1.10.9, datatables.net@^1.10.13:
version "1.10.13"
resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.13.tgz#6ac584ba6fc2dff1195e5c66d3e3b051a4b52b96"
version "1.10.15"
resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.15.tgz#c789077bbfe385e75ff5a233fa5f23251a72df68"
dependencies:
jquery ">=1.7"
......@@ -81,13 +97,13 @@ emojis-list@^2.0.0:
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
enhanced-resolve@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec"
version "3.4.1"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
dependencies:
graceful-fs "^4.1.2"
memory-fs "^0.4.0"
object-assign "^4.0.1"
tapable "^0.2.5"
tapable "^0.2.7"
eonasdan-bootstrap-datetimepicker@^4.17.47:
version "4.17.47"
......@@ -105,8 +121,12 @@ errno@^0.1.3:
prr "~0.0.0"
es6-promise@latest:
version "4.0.5"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42"
version "4.1.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
flot@^0.8.0-alpha:
version "0.8.0-alpha"
......@@ -123,21 +143,25 @@ graceful-fs@^4.1.2:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
inherits@~2.0.1:
has-flag@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
install@~1.0.4:
version "0.8.7"
resolved "https://registry.yarnpkg.com/install/-/install-0.8.7.tgz#f6a8a0e5d696208e8811574031b6e96a7c4c77b2"
install@^0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/install/-/install-0.10.1.tgz#1c7b53c8dd7335ef534c2648de28f599df1bdd97"
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
jquery-mask-plugin@igorescobar/jQuery-Mask-Plugin#^1.14.0:
version "1.14.10"
resolved "https://codeload.github.com/igorescobar/jQuery-Mask-Plugin/tar.gz/3eb5756db932f47349dc46312b217673bde9e920"
version "1.14.11"
resolved "https://codeload.github.com/igorescobar/jQuery-Mask-Plugin/tar.gz/85e8a0c6b713d876fc6c35e6bd5b5466465a1676"
jquery-mousewheel@>=3.0.6:
version "3.1.13"
......@@ -155,7 +179,7 @@ jquery.json-viewer@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/jquery.json-viewer/-/jquery.json-viewer-1.1.0.tgz#e97878cfa64c938a1eaf8d25cdf61f04d53df78d"
jquery@2.2.4, jquery@>=1.2.3, jquery@>=1.7, jquery@>=1.7.0, jquery@>=1.8, jquery@>=2.0.0, "jquery@^1.8.3 || ^2.0 || ^3.0":
jquery@2.2.4, jquery@>=1.2.3, jquery@>=1.7, jquery@>=1.7.0, jquery@>=1.8, jquery@>=2.0.0, "jquery@^1.8.3 || ^2.0 || ^3.0", jquery@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-2.2.4.tgz#2c89d6889b5eac522a7eea32c14521559c6cbf02"
......@@ -174,19 +198,18 @@ json5@^0.5.0:
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
lightgallery@^1.3.2:
version "1.3.9"
resolved "https://registry.yarnpkg.com/lightgallery/-/lightgallery-1.3.9.tgz#98ffae0bb106b59ed9fb59363da1121784ce9a97"
version "1.5.0"
resolved "https://registry.yarnpkg.com/lightgallery/-/lightgallery-1.5.0.tgz#17d484b0cb27d7bf03a8793a1bdf9027b40f494f"
dependencies:
jquery ">=1.7.0"
loader-utils@^0.2.6:
version "0.2.16"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d"
loader-utils@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
dependencies:
big.js "^3.1.3"
emojis-list "^2.0.0"
json5 "^0.5.0"
object-assign "^4.0.1"
malihu-custom-scrollbar-plugin@^3.1.3:
version "3.1.5"
......@@ -216,8 +239,8 @@ moment-timezone@^0.4.0:
moment ">= 2.6.0"
"moment@>= 2.6.0", moment@>=2.9.0, moment@^2.10, moment@^2.15.1:
version "2.17.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82"
version "2.18.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
nouislider@^8.5.1:
version "8.5.1"
......@@ -236,32 +259,47 @@ prr@~0.0.0:
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
readable-stream@^2.0.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e"
version "2.3.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
dependencies:
buffer-shims "^1.0.0"
core-util-is "~1.0.0"
inherits "~2.0.1"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~1.0.6"
string_decoder "~0.10.x"
safe-buffer "~5.1.1"
string_decoder "~1.0.3"
util-deprecate "~1.0.1"
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
semver@^5.0.1:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
simpleweather@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/simpleweather/-/simpleweather-3.1.0.tgz#d2a11d22cc2a33abd2d1f7f9227ba80b9c92d944"
string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
string_decoder@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
dependencies:
safe-buffer "~5.1.0"
summernote@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/summernote/-/summernote-0.8.2.tgz#5be7bbc56e8db83c3804fa2dc8c46e5061cfb7bd"
version "0.8.6"
resolved "https://registry.yarnpkg.com/summernote/-/summernote-0.8.6.tgz#e40ddb3ef85eb5c75672b24fc3a68c76c474c0bb"
dependencies:
bootstrap "^3.3.7"
jquery "^2.2.4"
supports-color@^4.0.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836"
dependencies:
has-flag "^2.0.0"
sweetalert2@^5.0.7:
version "5.3.8"
......@@ -269,23 +307,23 @@ sweetalert2@^5.0.7:
dependencies:
es6-promise latest
tapable@^0.2.5:
version "0.2.6"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d"
tapable@^0.2.7:
version "0.2.8"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
timeago@^1.5.4:
version "1.5.4"
resolved "https://registry.yarnpkg.com/timeago/-/timeago-1.5.4.tgz#89dbccdb715a5529416fb2e2de0f60e0f2f47e9a"
version "1.6.1"
resolved "https://registry.yarnpkg.com/timeago/-/timeago-1.6.1.tgz#fa9aa932e6cfae1f0c9b62f49d8a6071fdf69c5b"
dependencies:
jquery ">=1.2.3"
ts-loader@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-2.0.0.tgz#26f382b51951bf5db4c88ea5f3b156c1cfdd813f"
version "2.3.2"
resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-2.3.2.tgz#b71b9f0d0062c791a654d462140718f9f7817665"
dependencies:
colors "^1.0.3"
chalk "^2.0.1"
enhanced-resolve "^3.0.0"
loader-utils "^0.2.6"
loader-utils "^1.0.2"
semver "^5.0.1"
typeahead.js@^0.11.1:
......
install:
install -D -m 0755 status-ctl.sh $$(pwd)/debian/status-ctl/usr/bin/status-ctl
mkdir -p $$(pwd)/debian/status-ctl/etc/status-site/
cp --no-preserve=ownership appsettings.production.yml $$(pwd)/debian/status-ctl/etc/status-site/appsettings.yml
cp --no-preserve=ownership docker-compose.yml $$(pwd)/debian/status-ctl/etc/status-site/docker-compose.yml
cp --no-preserve=ownership .env $$(pwd)/debian/status-ctl/etc/status-site/.env
#!/bin/bash
# Abort if any command returns non-zero code
set -e
# Prints a message (required first parameter) in blue color
function echo_info {
COLOR="\033[0;36m"
NOCOLOR="\033[0m"
printf "${COLOR}${1}${NOCOLOR}\n"
}
# Prints a message (required first parameter) in red color
function echo_success {
COLOR="\033[0;32m"
NOCOLOR="\033[0m"
printf "${COLOR}${1}${NOCOLOR}\n"
}
# Prints the error message into the error stream and exists with non-zero code
# Requires first argumnent - error message
# Second argument is optional - exit code
function die {
[[ $1 ]] || {
printf >&2 -- 'Usage:\n\tdie <message> [return code]\n'
[[ $- == *i* ]] && return 1 || exit 1
}
COLOR="\033[0;31m"
NOCOLOR="\033[0m"
printf >&2 -- "${COLOR}${1}${NOCOLOR}\n"
usage
exit ${2:-1}
}
function usage {
NOCOLOR="\033[0m"
CYAN="\033[0;36m"
GREEN="\033[0;32m"
RED="\033[0;31m"
printf "Usage: ${RED}$0${NOCOLOR} -t ${GREEN}<string | gitlab-access-token>${NOCOLOR} [-b ${CYAN}<string | branch>${NOCOLOR}]\n"
printf "Example: ${RED}$0${NOCOLOR} -t ${GREEN}slfkSKDF-asdasas-879${NOCOLOR} -b ${CYAN}263-complete-bundling-process${NOCOLOR}\n"
printf "where:\n"
printf "\t-t ${GREEN}gitlab-access-token${NOCOLOR} is gitlab access token needed to access the mono repo.\n"
printf "\t-b ${CYAN}branch${NOCOLOR} is a branch name from whcih to download artifacts.\n"
exit 1
}
BRANCH="master"
# Process command line arguments
while getopts "t:b:" o; do
case "${o}" in
t)
TOKEN=$OPTARG
;;
b)
BRANCH=$OPTARG
;;
*)
usage
;;
esac
done
shift $((OPTIND-1))
[[ -n "$TOKEN" ]] || die "-t is required"
PROJECT_ID="47" # lookup in repo settings
JOB="release-debian" # change if necessary
echo_info "Downloading artifacts into temporary directory"
cd `mktemp -d`
curl \
--header "PRIVATE-TOKEN: $TOKEN" \
"https://git.dbogatov.org/api/v4/projects/$PROJECT_ID/jobs/artifacts/$BRANCH/download?job=$JOB" \
> artifacts.zip \
|| die "Could not download artifacts"
echo_info "Extracting files"
unzip artifacts.zip \
|| die "Could not extract files"
echo_info "Removing .deb"
reprepro -b /var/repositories/ remove trusty status-ctl \
|| die "Could not remove .deb from reprepro"
echo_info "Installing .deb"
reprepro -b /var/repositories includedeb trusty debian/build/*.deb \
|| die "Could not add .deb to reprepro"
echo_success "Added package to the repository"
status-ctl (1.1.0) unstable; urgency=medium
* Update man page.
-- Dmytro Bogatov <dmytro@dbogatov.org> Thu, 05 Aug 2017 04:35:38 +0000
status-ctl (1.0.0) unstable; urgency=medium
* First release.
-- Dmytro Bogatov <dmytro@dbogatov.org> Thu, 04 Aug 2017 04:35:38 +0000
status-ctl (0.1.0) unstable; urgency=medium
* First working prototype.
-- Dmytro Bogatov <dmytro@dbogatov.org> Thu, 04 Aug 2017 03:35:38 +0000
status-ctl (0.0.4) unstable; urgency=medium
* Prototype.
-- Dmytro Bogatov <dmytro@dbogatov.org> Thu, 04 Aug 2017 02:35:38 +0000
status-ctl (0.0.3) unstable; urgency=medium
* Updated main script.
-- Dmytro Bogatov <dmytro@dbogatov.org> Thu, 04 Aug 2017 01:35:38 +0000
status-ctl (0.0.2) unstable; urgency=medium
* Pipeline working.
-- Dmytro Bogatov <dmytro@dbogatov.org> Thu, 03 Aug 2017 01:35:38 +0000
status-ctl (0.0.1) unstable; urgency=low
* Initial release.
-- Dmytro Bogatov <dmytro@dbogatov.org> Tue, 01 Aug 2017 17:31:38 +0000
Source: status-ctl
Maintainer: Dmytro Bogatov <dmytro@dbogatov.org>
Build-Depends: debhelper (>= 9.0.0)
Standards-Version: 3.9.6
Section: utils
Package: status-ctl
Priority: extra
Architecture: any
Depends: ${misc:Depends}
Description: Tool to control status site
Long description here.
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Dmytro Bogatov
Upstream-Contact: Dmytro Bogatov <dmytro@dbogatov.org>
Files: *
Copyright: Copyright 2017 Files: *
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
debian/status-ctl.1
#!/usr/bin/make -f
%:
dh $@
override_dh_usrlocal:
.de URL
\\$2 \(laURL: \\$1 \(ra\\$3
..
.if \n[.g] .mso www.tmac
.TH ...
.
.\" Manpage for status-ctl.
.\" Contact dmytro@dbogatov.org to correct errors or typos.
.TH man 1 "4 August 2017" "0.1.1" "status-ctl man page"
.SH NAME
.B status-ctl