Bash · 480 bytes Raw Blame History
1 #!/bin/sh
2
3 set -eu
4
5 if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
6 echo "usage: $0 <repo-url> [package-name]" >&2
7 exit 1
8 fi
9
10 repo_url=$1
11
12 if [ "$#" -eq 2 ]; then
13 package_name=$2
14 else
15 package_name=$(basename "$repo_url")
16 package_name=${package_name%.git}
17 fi
18
19 target_dir="packages/$package_name"
20
21 if [ -e "$target_dir" ]; then
22 echo "error: target already exists: $target_dir" >&2
23 exit 1
24 fi
25
26 git submodule add "$repo_url" "$target_dir"
27 echo "added submodule at $target_dir"