summaryrefslogtreecommitdiff
path: root/make_desktop.sh
blob: 14898d492492d2df9fd5817dcfdaaddd3e761f21 (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/bin/bash
RED='\033[0;31m'
NC='\033[1m\033[0m'
GREEN='\033[0;32m'
ORANGE='\033[0;33m'
GREY='\033[0;37m'


err() { echo -e "${RED}$@${NC}"; }
warn() { echo -e "${ORANGE}$@${NC}"; }
success() { echo -e "${GREEN}$@${NC}"; }
debug() { echo -e "${GREY}->$@${NC}"; }

exe() {  debug "\$ $@" ; "$@" ; }

if [ ! -d "desktop" ]; then
	echo "You have not downloaded desktop images"
	echo "Please run ./prepare_desktop.sh"
	echo
	exit
fi

while [[ $# -gt 0 ]]
do
        arg="$1"
        case $arg in
              -h|--help)
                      echo "./make_desktop.sh [--port|-p mac|linux32|linux64|linuxarm|win32|win64|arm|<any substring that matches one or more port names>]"
                      echo "                  so -p linux will build linux32/64/arm as they all match linux"
                      echo "                  [--nocolor|nc] to disable color output"
                      echo
                      exit
                      ;;

              -p|--port)
                      PORT="$2"
                      shift
                      shift
                      ;;
              -nc|--nocolor)
                      RED=''
                      NC=''
                      GREEN=''
                      ORANGE=''
                      GREY=''
                      shift
                      ;;
              *)
                      echo "Unknown argument $1, ignoring..."
                      shift
                      ;;
        esac
done

[[ ! -z $PORT ]]  && echo "Only creating build for $PORT" && PORT="-$PORT"

echo ----------------------------------------------------
echo Pliable Pixels Desktop build process
echo ----------------------------------------------------
APPVER=`cat config.xml | grep "widget " | sed 's/.* version=\"\([^\"]*\)\" xmlns.*/\1/'`
APPVER+="D"
echo "Application version:$APPVER"

declare -a app_ports=("desktop/zmNinja-mac.app/Contents/Resources" "desktop/zmNinja-linux32bit/resources" "desktop/zmNinja-linux64bit/resources" "desktop/zmNinja-win64bit/resources" "desktop/zmNinja-win32bit/resources"  "desktop/zmNinja-linuxarm/resources")

for i in "${app_ports[@]}"
do
        if [[ "$i" =~ $PORT || -z $PORT ]]; then
                :
        else
                warn "$i will be skipped (did not match $PORT)"
                continue
        fi
        if [ -d "$i" ]; then
        	DIRNAME=$i

        	if [ "${i}" == "desktop/zmNinja-mac.app/Contents/Resources" ]; then
        		BASENAME="desktop/zmNinja-mac.app/Contents"
        	else
        		BASENAME=`expr "$i" : '\(.*\)/resources'`
        	fi

                echo "------------------------------------------------------------------------"
                success "Working on packaging $i"
                echo "------------------------------------------------------------------------"
                echo Creating paths...
                exe rm -fr $i/app
                exe mkdir $i/app
                exe mkdir $i/app/node_modules
                echo Copying over relevant node modules...
                exe cp -R node_modules/electron-window-state $i/app/node_modules
                exe cp -R node_modules/jsonfile $i/app/node_modules
                exe cp -R node_modules/mkdirp $i/app/node_modules
                exe cp -R node_modules/deep-equal $i/app/node_modules
                exe cp -R node_modules/minimist $i/app/node_modules
                
                echo Copying over zmNinja code...
                exe cp -R www/* $i/app/
                exe cp electron_js/* $i/app
                exe cp www/ZMNINJA-LICENSE-DESKTOP-CLIENT.txt $BASENAME
                echo $APPVER > $BASENAME/version
                exe cp resources/icon.png $BASENAME
                exe cd $i 
                cat app/js/DataModel.js | sed "s/var zmAppVersion[ ]*=[ ]*\"unknown\"/var zmAppVersion=\"$APPVER\"/" > app/js/DataModel.js.tmp
                exe rm -fr app/js/DataModel.js
                exe mv app/js/DataModel.js.tmp app/js/DataModel.js
                
                
                rm -fr app.asar

                # No idea why but asar is causing problems in windows
                # main.js changes are not showig up. wuh? - Sep 29, 2017

                #exe asar pack app app.asar
                #read -p "Press a key to remove app dir for $i..."
                #exe rm -fr app
                cd - 
                #OSX ditto does a better job than zip!
                #echo "Creating ZIP $ZIPNAME..."
                #exe zip -r ../$ZIPNAME ../$DIRNAME

                success "Done!"
                echo
                
        else # dirname exists
        	echo "$i does not exist, skipping"
        fi
done
echo
warn "Note, SASS changes won't be reflected. Run 'ionic build' for that"
echo