Skip to content

Commit 0af7a3f

Browse files
committed
Add support for cmd arguments and smarter defaults. Fixes #15 (running on macOS)
1 parent 4a1e2c0 commit 0af7a3f

File tree

1 file changed

+31
-18
lines changed

1 file changed

+31
-18
lines changed

RUNME.sh

100644100755
+31-18
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/bin/bash
1+
#!/usr/bin/env bash
22

33
# Check that the script is running in correct director by checking that .git and Runtime folders exist
44
if [ ! -f "RUNME.sh" ] || [ ! -d "Runtime" ]
@@ -8,14 +8,27 @@ then
88
exit 1
99
fi
1010

11-
read -e -p "Company name: " -i "3D Group" COMPANY_FRIENDLY_NAME
12-
read -e -p "Company name in lower case: " -i "3d-group" COMPANY
13-
read -e -p "Unacceptable behavior may be reported at: " -i "[email protected]" REPORT_EMAIL
14-
read -e -p "Company website: " -i "https://3d.fi" COMPANY_WEBSITE
15-
read -e -p "Repository name: " -i "unity-simple-notifications" REPOSITORY_NAME
16-
read -e -p "Friendly name: " -i "Notifications" FRIENDLY_NAME
17-
read -e -p "Description: " -i "Package for Unity game engine." DESCRIPTION
18-
read -e -p "Unity version: " -i "2019.4" UNITY_VERSION
11+
# For reading variable from either command line argument or from user input
12+
setvar() {
13+
local varname argument default prompt
14+
varname=$1; argument=$2; prompt=$3; default=$4
15+
if [[ $argument ]]; then
16+
declare -g "$varname"="$argument"
17+
elif read -r -e -p "$prompt (${default}):" "${varname?}" && [[ -n ${!varname} ]]; then
18+
return 0
19+
else
20+
declare -g "$varname"="$default"
21+
fi
22+
}
23+
24+
setvar COMPANY_FRIENDLY_NAME "$1" "Company name" "3D Group"
25+
setvar COMPANY "$2" "Company name in lower case" "3d-group"
26+
setvar REPORT_EMAIL "$3" "Unacceptable behavior may be reported at" "support@${COMPANY}.com"
27+
setvar COMPANY_WEBSITE "$4" "Company website" "https://${COMPANY}.com"
28+
setvar REPOSITORY_NAME "$5" "Repository name" "unity-simple-notifications"
29+
setvar FRIENDLY_NAME "$6" "Friendly name for project" "Notifications"
30+
setvar DESCRIPTION "$7" "Description" "Package for Unity game engine."
31+
setvar UNITY_VERSION "$8" "Unity version" "2021.3.11f1"
1932

2033
# Escape special characters for input to be used in sed
2134
COMPANY_FRIENDLY_NAME=$(echo "$COMPANY_FRIENDLY_NAME" | sed -e 's/[]\/$*.^[]/\\&/g');
@@ -33,15 +46,15 @@ echo 'Replacing template strings...'
3346
YEAR="$(date +'%Y')"
3447

3548
# Form sed command and store it into a file. Ran into problems with white spaces when trying to pass this as parameter.
36-
echo "s/{{REPOSITORY_NAME}}/"${REPOSITORY_NAME}"/g;s/{{FRIENDLY_NAME}}/"${FRIENDLY_NAME}"/g;s/{{DESCRIPTION}}/"${DESCRIPTION}"/g;s/{{UNITY_VERSION}}/"${UNITY_VERSION}"/g;s/{{COMPANY}}/"${COMPANY}"/g;s/{{COMPANY_FRIENDLY_NAME}}/"${COMPANY_FRIENDLY_NAME}"/g;s/{{YEAR}}/"${YEAR}"/g;s/{{COMPANY_WEBSITE}}/"${COMPANY_WEBSITE}"/g;s/{{REPORT_EMAIL}}/"${REPORT_EMAIL}"/g" > temp.txt
49+
echo "s/{{REPOSITORY_NAME}}/""${REPOSITORY_NAME}""/g;s/{{FRIENDLY_NAME}}/""${FRIENDLY_NAME}""/g;s/{{DESCRIPTION}}/""${DESCRIPTION}""/g;s/{{UNITY_VERSION}}/""${UNITY_VERSION}""/g;s/{{COMPANY}}/""${COMPANY}""/g;s/{{COMPANY_FRIENDLY_NAME}}/""${COMPANY_FRIENDLY_NAME}""/g;s/{{YEAR}}/""${YEAR}""/g;s/{{COMPANY_WEBSITE}}/""${COMPANY_WEBSITE}""/g;s/{{REPORT_EMAIL}}/""${REPORT_EMAIL}""/g" > temp.txt
3750

3851
( shopt -s globstar dotglob;
3952
for file in **; do
4053
if [[ -f $file ]] && [[ -w $file ]] && [[ $file != 'RUNME.sh' ]] && [[ $file != 'temp.txt' ]] && [[ $file != Samples/** ]] && [[ $file != .git/** ]]; then
4154
echo "Altering file ${file}"
4255

4356
# Replace template strings inside files
44-
sed -i -f temp.txt "$file"
57+
sed -i '' -f temp.txt "$file"
4558

4659
# Replace template strings on file names
4760
newfile="$(echo ${file} |sed -f temp.txt)"
@@ -60,14 +73,14 @@ rm CONTRIBUTING.md
6073
rm LICENSE
6174
rm package.json
6275
rm .github/CODEOWNERS
63-
rmdir .github
64-
mv templates/README.md README.md
65-
mv templates/CONTRIBUTING.md CONTRIBUTING.md
66-
mv templates/LICENSE LICENSE
67-
mv templates/package.json package.json
68-
mv templates/.github .github
76+
rm -rf .github
77+
mv -f templates/README.md README.md
78+
mv -f templates/CONTRIBUTING.md CONTRIBUTING.md
79+
mv -f templates/LICENSE LICENSE
80+
mv -f templates/package.json package.json
81+
mv -f templates/.github .github
6982

70-
rmdir templates
83+
rm -rf templates
7184

7285
echo 'done.'
7386
rm RUNME.sh

0 commit comments

Comments
 (0)