summaryrefslogtreecommitdiff
path: root/linux/deb/01-fs-hello-kamal
diff options
context:
space:
mode:
authorKamal Wickramanayake <kamal@inbox.lk>2026-05-23 14:50:05 +0530
committerKamal Wickramanayake <kamal@inbox.lk>2026-05-23 14:50:05 +0530
commited1837534a0a9a1ab8f8291cff73be031a5d493b (patch)
treefbfb92615dcbbd250e7529c7afc00066fc72ef13 /linux/deb/01-fs-hello-kamal
parentfe8b0606b434bb17f870cf9e6ba473c2ef39ca1f (diff)
Dir rename
Diffstat (limited to 'linux/deb/01-fs-hello-kamal')
-rw-r--r--linux/deb/01-fs-hello-kamal/.gitignore1
-rw-r--r--linux/deb/01-fs-hello-kamal/README21
-rwxr-xr-xlinux/deb/01-fs-hello-kamal/build.sh29
-rw-r--r--linux/deb/01-fs-hello-kamal/package/DEBIAN/conffiles1
-rw-r--r--linux/deb/01-fs-hello-kamal/package/DEBIAN/control8
-rwxr-xr-xlinux/deb/01-fs-hello-kamal/package/DEBIAN/postinst10
-rwxr-xr-xlinux/deb/01-fs-hello-kamal/package/DEBIAN/preinst8
-rw-r--r--linux/deb/01-fs-hello-kamal/package/etc/fs-hello-kamal.conf3
-rwxr-xr-xlinux/deb/01-fs-hello-kamal/package/usr/bin/fs-hello-kamal16
9 files changed, 97 insertions, 0 deletions
diff --git a/linux/deb/01-fs-hello-kamal/.gitignore b/linux/deb/01-fs-hello-kamal/.gitignore
new file mode 100644
index 0000000..c00df13
--- /dev/null
+++ b/linux/deb/01-fs-hello-kamal/.gitignore
@@ -0,0 +1 @@
+*.deb
diff --git a/linux/deb/01-fs-hello-kamal/README b/linux/deb/01-fs-hello-kamal/README
new file mode 100644
index 0000000..114632c
--- /dev/null
+++ b/linux/deb/01-fs-hello-kamal/README
@@ -0,0 +1,21 @@
+This directory contains everything to build a simple deb package.
+
+To build, run the following command:
+
+ ./build.sh
+
+To install the build deb package run the following commands replacing the package.deb with the correct name of the deb file.
+
+ cp package.deb /tmp
+ cd /tmp
+ apt install ./package.deb
+
+The above "apt install" will download dependencies if needed. Otherwise, dpkg command can just be used to install or upgrade the package:
+
+ dpkg -i package.deb
+
+After installing the package, update the configuration file /etc/fs-hello-kamal.conf .
+
+To run the command found in this package after installing the deb file:
+
+ fs-hello-kamal Debian is good
diff --git a/linux/deb/01-fs-hello-kamal/build.sh b/linux/deb/01-fs-hello-kamal/build.sh
new file mode 100755
index 0000000..bc77f92
--- /dev/null
+++ b/linux/deb/01-fs-hello-kamal/build.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Define a function that sends messages to stderr.
+errcho() {
+ echo "$@" 1>&2;
+}
+
+# Check if fakeroot command is available
+if ! command -v fakeroot > /dev/null 2>&1; then
+ errcho "[ERROR] fakeroot command not found. Install the fakeroot package.";
+ exit 1
+fi
+
+# Check if dpkg-deb command is available
+if ! command -v dpkg-deb > /dev/null 2>&1; then
+ errcho "[ERROR] dpkg-deb command not found. dpkg package contains it. Are you not running this script on a Debian based system?";
+ exit 1
+fi
+
+# Get the directory of this script
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Remove the deb files found inside DIR. Prompt the user before deleting.
+if ls $DIR/*.deb 1> /dev/null 2>&1; then
+ rm -i $DIR/*.deb
+fi
+
+# Build the deb package
+fakeroot dpkg-deb --build $DIR/package $DIR
diff --git a/linux/deb/01-fs-hello-kamal/package/DEBIAN/conffiles b/linux/deb/01-fs-hello-kamal/package/DEBIAN/conffiles
new file mode 100644
index 0000000..c350b0c
--- /dev/null
+++ b/linux/deb/01-fs-hello-kamal/package/DEBIAN/conffiles
@@ -0,0 +1 @@
+/etc/fs-hello-kamal.conf
diff --git a/linux/deb/01-fs-hello-kamal/package/DEBIAN/control b/linux/deb/01-fs-hello-kamal/package/DEBIAN/control
new file mode 100644
index 0000000..82f25db
--- /dev/null
+++ b/linux/deb/01-fs-hello-kamal/package/DEBIAN/control
@@ -0,0 +1,8 @@
+Package: fs-hello-kamal
+Version: 1.0.0-1
+Section: games
+Priority: optional
+Architecture: all
+Depends: cowsay
+Maintainer: Kamal Wickramanayake <info@software.lk>
+Description: A demo Debian package that prints a message to the console.
diff --git a/linux/deb/01-fs-hello-kamal/package/DEBIAN/postinst b/linux/deb/01-fs-hello-kamal/package/DEBIAN/postinst
new file mode 100755
index 0000000..978306d
--- /dev/null
+++ b/linux/deb/01-fs-hello-kamal/package/DEBIAN/postinst
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -e
+
+if [ "$1" == "configure" ] && [ -z "$2" ]; then
+ # Code here executes only during package install (but not during upgrade)
+ echo "postinst script is running and this line gets printed during first install of the package"
+fi
+
+echo "postinst script is running and this line gets printed during install or upgrade of the package."
diff --git a/linux/deb/01-fs-hello-kamal/package/DEBIAN/preinst b/linux/deb/01-fs-hello-kamal/package/DEBIAN/preinst
new file mode 100755
index 0000000..61c2587
--- /dev/null
+++ b/linux/deb/01-fs-hello-kamal/package/DEBIAN/preinst
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+set -e
+
+# Put commands that should execute before the pckage is installed.
+
+# Example: Just print a message
+echo "preinst script running..."
diff --git a/linux/deb/01-fs-hello-kamal/package/etc/fs-hello-kamal.conf b/linux/deb/01-fs-hello-kamal/package/etc/fs-hello-kamal.conf
new file mode 100644
index 0000000..ddba856
--- /dev/null
+++ b/linux/deb/01-fs-hello-kamal/package/etc/fs-hello-kamal.conf
@@ -0,0 +1,3 @@
+# This is a sample configuration file.
+
+PREFIX_NAME="Kamal"
diff --git a/linux/deb/01-fs-hello-kamal/package/usr/bin/fs-hello-kamal b/linux/deb/01-fs-hello-kamal/package/usr/bin/fs-hello-kamal
new file mode 100755
index 0000000..b8c827c
--- /dev/null
+++ b/linux/deb/01-fs-hello-kamal/package/usr/bin/fs-hello-kamal
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# Define a function that sends messages to stderr.
+errcho() {
+ echo "$@" 1>&2;
+}
+
+# Source the configuration file.
+. /etc/fs-hello-kamal.conf
+
+if [ "$1" = "" ]; then
+ errcho "Error! Provide some arguments to the command."
+ exit 1
+fi
+
+/usr/games/cowsay "$PREFIX_NAME's friend cow says $@"