Skip to content

Commit 0b2f676

Browse files
Make error codes have more meaning
1 parent ba53605 commit 0b2f676

File tree

4 files changed

+47
-36
lines changed

4 files changed

+47
-36
lines changed

docs/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,17 @@ Run the script with the following command:
4141
- `vault`: The path to the root of your vault. This is the folder containing the `.obsidian` folder.
4242
- `source`: The path from a plugin directory (`.obsidian/plugins/plugin`) to its source code.
4343

44+
## Error Codes
45+
46+
- `1`: Failed to move to or from a directory.
47+
- `2`: No argument provided.
48+
- `3`: Directory or file does not exist.
49+
- `4`: Failed to read file.
50+
- `5`: Failed to install dependencies.
51+
- `6`: Failed to build.
52+
- `7`: Failed to install plugin.
53+
- `8`: Failed to clean up.
54+
4455
## License
4556

4657
© 2025 [Esoteric Enderman][author-website]

src/build_obsidian_plugin.sh

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,48 @@
1-
pushd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null || exit
1+
pushd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null || exit 1
22

33
. ./obsidian_plugin_build_strategies.sh
44

5-
popd >/dev/null || exit
5+
popd >/dev/null || exit 1
66

77
build_obsidian_plugin() {
88
for plugin_source in "$@"; do
99
if [[ -z "$plugin_source" ]]; then
1010
echo "Error: no Obsidian plugin source code provided! Can't build Obsidian plugin."
11-
exit 1
11+
exit 2
1212
fi
1313

1414
echo "Building Obsidian plugin at path: $plugin_source"
1515

1616
if [ ! -d "$plugin_source" ]; then
1717
echo "Error: Obsidian plugin source code at path $plugin_source not found!"
18-
exit 2
18+
exit 3
1919
fi
2020

2121
pushd "$plugin_source" >/dev/null || {
2222
echo "Error: failed to enter Obsidian plugin source code folder at path $plugin_source!"
23-
exit 3
23+
exit 1
2424
}
2525

2626
if [ ! -f ./manifest.json ]; then
2727
echo "Obsidian plugin manifest.json file not found at path $plugin_source!"
28-
exit 4
28+
exit 3
2929
fi
3030

3131
local plugin_json
3232
plugin_json=$(cat ./manifest.json) || {
3333
echo "Error: failed to read Obsidian plugin manifest.json file at path $plugin_source!"
34-
exit 5
34+
exit 4
3535
}
3636

3737
local plugin_id
3838
plugin_id=$(echo "$plugin_json" | jq -r .id) || {
3939
echo "Error: failed to read Obsidian plugin ID from manifest.json file when building plugin at path $plugin_source!"
40-
exit 6
40+
exit 4
4141
}
4242

4343
if [[ -z $plugin_id ]]; then
4444
echo "Error: failed to read Obsidian plugin ID from manifest.json file while building Obsidian plugin at path $plugin_source!"
45-
exit 6
45+
exit 4
4646
fi
4747

4848
echo "Building Obsidian plugin with ID $plugin_id..."
@@ -53,7 +53,7 @@ build_obsidian_plugin() {
5353

5454
npm install || {
5555
echo "Error: failed to install dependencies of Obsidian plugin $plugin_id!"
56-
exit 7
56+
exit 5
5757
}
5858

5959
local build_strategy=${obsidian_plugin_build_strategies[$plugin_id]}
@@ -70,53 +70,53 @@ build_obsidian_plugin() {
7070

7171
pushd "./MathjaxToSVG" >/dev/null || {
7272
echo "Error: failed to access Obsidian $plugin_id sub-directory!"
73-
exit 8
73+
exit 1
7474
}
7575

7676
npm install || {
7777
echo "Error: failed to install Obsidian plugin $plugin_id sub-directory dependencies!"
78-
exit 7
78+
exit 5
7979
}
8080

8181
npm run build || {
8282
echo "Error: failed to install Obsidian plugin $plugin_id sub-project!"
83-
exit 8
83+
exit 6
8484
}
8585

8686
popd >/dev/null || exit
8787

8888
npm run build || {
8989
echo "Error: failed to build Obsidian plugin $plugin_id!"
90-
exit 8
90+
exit 6
9191
}
9292
;;
9393
"obsidian-dev-utils")
9494
echo "Using Obsidian Dev Utils build strategy"
9595

9696
npx obsidian-dev-utils build || {
9797
echo "Error: failed to build Obsidian plugin $plugin_id using Obsidian Dev Utils!"
98-
exit 8
98+
exit 6
9999
}
100100
;;
101101
"yarn")
102102
echo "Using Yarn Obsidian plugin build strategy"
103103

104104
npx yarn run build || {
105105
echo "Error: failed to build Obsidian plugin $plugin_id using Yarn!"
106-
exit 8
106+
exit 6
107107
}
108108
;;
109109
*)
110110
echo "Using default Obsidian plugin build strategy"
111111

112112
node esbuild.config.mjs production || {
113113
echo "Error: failed to build Obsidian plugin $plugin_id using esbuild!"
114-
exit 8
114+
exit 6
115115
}
116116
;;
117117
esac
118118

119-
popd >/dev/null || exit
119+
popd >/dev/null || exit 1
120120
done
121121
}
122122

src/install_obsidian_plugin.sh

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
pushd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null || exit
1+
pushd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null || exit 1
22

33
. ./build_obsidian_plugin.sh --source-only
44

5-
popd >/dev/null || exit
5+
popd >/dev/null || exit 1
66

77
install_obsidian_plugin() {
88
local vault="$1"
99

1010
if [[ -z $vault ]]; then
1111
echo "Error: No Obsidian vault argument provided! Cannot install Obsidian plugin!"
12-
exit 1
12+
exit 2
1313
fi
1414

1515
for plugin_source in "${@:2}"; do
@@ -25,24 +25,24 @@ install_obsidian_plugin() {
2525

2626
if [ ! -d "$plugin_source" ]; then
2727
echo "Error: Obsidian plugin source code at path $plugin_source not found! Cannot install into vault $vault!"
28-
exit 4
28+
exit 3
2929
fi
3030

3131
local plugin_json
3232
plugin_json=$(cat "./$plugin_source/manifest.json") || {
3333
echo "Error: failed to read Obsidian plugin manifest.json file at path $plugin_source! Cannot install into vault $vault!"
34-
exit 5
34+
exit 4
3535
}
3636

3737
local plugin_id
3838
plugin_id=$(echo "$plugin_json" | jq -r .id) || {
3939
echo "Error: failed to read Obsidian plugin ID from manifest.json file while install plugin at path $plugin_source into Obsidian vault at path $vault!"
40-
exit 6
40+
exit 4
4141
}
4242

4343
if [[ -z $plugin_id ]]; then
4444
echo "Error: failed to read Obsidian plugin ID from manifest.json file while install plugin at path $plugin_source into Obsidian vault at path $vault!"
45-
exit 6
45+
exit 4
4646
fi
4747

4848
build_obsidian_plugin "$plugin_source"
@@ -73,36 +73,36 @@ install_obsidian_plugin() {
7373
"obsidian-dev-utils")
7474
mv "$plugin_source/dist/build/main.js" "$plugin_directory" || {
7575
echo "Error: failed to move main file of plugin $plugin_id built with Obsidian Dev Utils!"
76-
exit 8
76+
exit 7
7777
}
7878

7979
mv "$plugin_source/dist/build/manifest.json" "$plugin_directory" || {
8080
echo "Error: failed to move manifest file of plugin $plugin_id built with Obsidian Dev Utils!"
81-
exit 8
81+
exit 7
8282
}
8383

8484
[[ -f "$plugin_source/dist/build/styles.css" ]] && {
8585
mv "$plugin_source/dist/build/styles.css" "$plugin_directory" || {
8686
echo "Error: failed to move styles file of plugin $plugin_id built with Obsidian Dev Utils!"
87-
exit 8
87+
exit 7
8888
}
8989
}
9090
;;
9191
*)
9292
mv "$plugin_source/main.js" "$plugin_directory" || {
9393
echo "Error: failed to move main file of plugin $plugin_id!"
94-
exit 8
94+
exit 7
9595
}
9696

9797
cp "$plugin_source/manifest.json" "$plugin_directory" || {
9898
echo "Error: failed to move manifest file of plugin $plugin_id!"
99-
exit 8
99+
exit 7
100100
}
101101

102102
[[ -f "$plugin_source/styles.css" ]] && {
103103
cp "$plugin_source/styles.css" "$plugin_directory" || {
104104
echo "Error: failed to move styles file of plugin $plugin_id!"
105-
exit 8
105+
exit 7
106106
}
107107
}
108108
;;

src/install_obsidian_plugins.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@
77
# vault: the path to the root of the vault (the folder that contains the .obsidian folder).
88
# source: the path from a plugin folder (.obsidian/plugins/plugin) to its source code.
99

10-
pushd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null || exit
10+
pushd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null || exit 1
1111

1212
. ./install_obsidian_plugin.sh --source-only
1313

14-
popd >/dev/null || exit
14+
popd >/dev/null || exit 1
1515

1616
install_obsidian_plugins() {
1717
local vault="$1"
1818
local plugin_source_directory="$2"
1919

2020
if [ ! -d "$vault" ]; then
2121
echo "Error: Obsidian vault directory $vault not found!"
22-
exit 1
22+
exit 3
2323
fi
2424

2525
if [ ! -d "$vault/.obsidian" ]; then
2626
echo "Error: provided directory is not an Obsidian vault as it does not contain a .obsidian folder!"
27-
exit 2
27+
exit 3
2828
fi
2929

3030
if ! test -d "$vault/.obsidian/plugins"; then
@@ -62,7 +62,7 @@ install_obsidian_plugins() {
6262

6363
git submodule foreach --recursive "git restore ./ && git clean -f" || {
6464
echo "Failed to restore submodules to their original state!"
65-
exit 9
65+
exit 8
6666
}
6767
fi
6868
fi

0 commit comments

Comments
 (0)