blob: f6405ff10384bab8124b16cfc40ed1f1303a4bf7 (
plain)
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
|
#!/usr/bin/env sh
######################################################################
# @author : garhve (dev@garhve.com)
# @file : blog
# @created : Friday Dec 09, 2022 16:09:42 CST
#
# @description : simplify blog publishing.
######################################################################
# usage: prog [action] [option]
#p="$(pwd)"
#
#cd "$HOME/Storage/data/blog"
#
#echo "Enter the blog name"
#read -r name
#
#hugo new posts/"$name"
#
#echo "1. en"
#echo "2. cn"
#echo "all option would be default to 1 except 2[1 or 2]: "
#read l
#
#if [ $l -eq 1 ]; then
# lang="en"
#elif [ $l -eq 2 ]; then
# lang="cn"
#else
# lang="en"
#fi
#[ $lang == "cn" ] && mv "content/en/posts/$name" "content/cn/posts/$name"
#vim "content/$lang/posts/$name"
#
#hugo
#cd "public"
#git add .
#read -r -p "commit message: " com
#git commit -m "$com"
#
#cd "$p"
push() {
read -r -p "Do you want to push?[y/n] " ans
if [ "$ans" == 'y' ]; then
hugo
cd "public"
git add .
if [ ! -z "$(git status | grep 'Changes to be committed')" ]; then
read -r -p "commit message: " msg
git commit -m "$msg"
git push origin main
fi
echo -e "push done"
fi
}
edit() {
# --- define path
[ -z "$1" ] || [ "$1" == "en" ] && lang="en"
[ "$1" == "cn" ] && lang="cn"
path="content/$lang/posts"
# --- end
# --- get editing file
choice=1
declare -a arr
for file in $path/*; do
echo -ne "($choice)\x1b[0;32m${file##*/}\x1b[0m " # n get rid of trailing new line, e strip backslash
arr[$choice]="$file"
choice=$((choice+1))
done
echo ""
read -r -p "please choose file by number you want to edit from above [$lang]: " num
vim "${arr[$num]}"
# --- end
push
echo -e "\nall done"
}
new() {
read -r -p "blog name: " name
post="posts/$name"
[ -z "$1" ] || [ "$1" == "en" ] && lang="en"
[ "$1" == "cn" ] && lang="cn"
path="content/$lang/posts"
hugo new "${post}.md"
[ "$?" -eq 0 ] && echo "creation done"
[ "$?" -ne 0 ] && echo "creation fail, please check error" && exit 1
[ "$lang" == "cn" ] && mv "content/en/posts/$name.md" "$path/$name.md"
read -r -p "do you want to edit now?[y/n] " ans
[ "${ans,,}" == 'y' ] && vim "$path/$name.md" && echo "edit done"
push
echo -e "\nall done"
}
[ $# -lt 1 ] && echo "usage: $(basename $0) [action] [option]"
[ $1 == "new" ] && new "$2"
[ $1 == "edit" ] && edit "$2"
[ $1 == "push" ] && push
|