aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremmett1 <emmett1.2miligrams@protonmail.com>2024-06-24 00:11:38 +0800
committeremmett1 <emmett1.2miligrams@protonmail.com>2024-06-24 00:11:38 +0800
commit4e307dd5c0168651ec7c982b377b2e115edb7238 (patch)
tree08736a0e28193af326b5842d27945be9f2f46a0c
parent74817cd2c7c394720e4a418b8ecf26fb1c1a7346 (diff)
downloadspm-4e307dd5c0168651ec7c982b377b2e115edb7238.tar.gz
spm-4e307dd5c0168651ec7c982b377b2e115edb7238.zip
add lock function for both install and packaging
-rwxr-xr-xspm29
1 files changed, 22 insertions, 7 deletions
diff --git a/spm b/spm
index a862bea..0256e78 100755
--- a/spm
+++ b/spm
@@ -8,6 +8,19 @@ spm_build() {
if [ ! -d "$1" ]; then
msgerr "'$1' directory not exist."
fi
+
+ if [ -f "$SPMDIR/package.lock" ]; then
+ msg "Theres existing packaging process running..."
+ msg "remove '$SPMDIR/package.lock' if theres no packaging process running."
+ fi
+ while [ -f "$SPMDIR/package.lock" ]; do
+ count=$((count+1))
+ printf "[${name:-...}] wait for existing packaging process complete ($count)...\033[0K\r"
+ sleep 1
+ done
+ printf "\033[0K"
+
+ touch "$SPMDIR/package.lock"
rm -f $HERE/$packagename
cd "$1"
@@ -28,6 +41,7 @@ spm_build() {
tar -c -z -f $HERE/$packagename * || {
msgerr "Failed packaging $PWD."
}
+ rm -f "$SPMDIR/package.lock"
tar -tvf $HERE/$packagename
msg "Package created: $HERE/$packagename."
@@ -66,17 +80,18 @@ spm_install() {
msgerr "Package '$name' is installed, use '-u' to reinstall/upgrade."
fi
- if [ -f "$SPMDIR/lock" ]; then
- msg "Theres existing spm process running..."
- msg "remove '$SPMDIR/lock' if theres no spm process running."
+ if [ -f "$SPMDIR/install.lock" ]; then
+ msg "Theres existing install process running..."
+ msg "remove '$SPMDIR/install.lock' if theres no install process running."
fi
- while [ -f "$SPMDIR/lock" ]; do
+ while [ -f "$SPMDIR/install.lock" ]; do
count=$((count+1))
- msg "wait for existing spm process complete ($count)..."
+ printf "[${name:-...}] wait for existing install process complete ($count)...\033[0K\r"
sleep 1
done
+ printf "\033[0K"
- touch "$SPMDIR/lock"
+ touch "$SPMDIR/install.lock"
# check if package is corrupt
msg "Verify package..."
@@ -185,7 +200,7 @@ spm_install() {
msg "Package '${pkgname%.spm}' $([ $upgrade ] && echo upgraded. || echo installed.)"
- rm "$SPMDIR/lock"
+ rm -f "$SPMDIR/install.lock"
exit 0
}