0xGA: Check-in [f220741eb3]

Yet another PHP framework, but made for org-mode and geeks.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update narv to allow relative path for workingrep
Timelines: family | ancestors | descendants | both | narv
Files: files | file ages | folders
SHA1:f220741eb30cd2b1847747338e7aa62c9b002e9a
User & Date: milouse 2014-12-25 01:19:50
Context
2014-12-25
01:23
Fix update process check-in: 0fbc05cbc6 user: milouse tags: narv
01:19
Update narv to allow relative path for workingrep check-in: f220741eb3 user: milouse tags: narv
01:03
Update readme check-in: 913bab0bcb user: milouse tags: narv
Changes

Changes to create_narv_installer.sh.

32
33
34
35
36
37
38








39
40
41
42
43
44
45
..
56
57
58
59
60
61
62

63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
..
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

rm src/*.gz
exit

####################################################
### INSTALLER SCRIPT
####################################################









if which gpg &> /dev/null; then
    if gpg -k 8C9CEE3D &> /dev/null; then
        echo -n 'Check sig? [Y|n] '
        read check_sign
        if [ "$check_sign" != "n" ]; then
            wget http://projects.depar.is/0xGA/doc/tip/narv_install.sh.asc
................................................................................
gzip -d narv.gz narv.py.gz
chmod u+x narv

if [ -n "$1" ]; then
    if [ "$1" = 'update' ]; then
        if [ ! -f 'bin/narv' ]; then
            echo "ERROR: Could not find a valid 0xGA installation"

            exit 1
        fi

        rm bin/narv bin/narv.py

        install -D -m755 narv.py bin
        install -D -m755 narv    bin

        rm narv narv.py
        echo "Update finished."
        exit
    fi
fi

WORKINGREP=`realpath ./narvroot`

................................................................................
install -d -m755 $WORKINGREP/bin
install -d -m755 $WORKINGREP/etc
install -d -m755 $WORKINGREP/home

install -D -m755 narv.py $WORKINGREP/bin
install -D -m755 narv    $WORKINGREP/bin

rm narv narv.py narv_install.sh

if [ -f narv_install.sh.asc ]; then
    rm narv_install.sh.asc
fi

echo "General installation finished."
echo "You may now want to create your first app by entering the command:"
echo "$WORKINGREP/bin/narv create -d $WORKINGREP <appname>"







>
>
>
>
>
>
>
>







 







>








|







 







<
<
<
|
<



|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
..
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
...
105
106
107
108
109
110
111



112

113
114
115
116

rm src/*.gz
exit

####################################################
### INSTALLER SCRIPT
####################################################

function clean_install {
    rm narv narv.py narv_install.sh

    if [ -f narv_install.sh.asc ]; then
        rm narv_install.sh.asc
    fi
}

if which gpg &> /dev/null; then
    if gpg -k 8C9CEE3D &> /dev/null; then
        echo -n 'Check sig? [Y|n] '
        read check_sign
        if [ "$check_sign" != "n" ]; then
            wget http://projects.depar.is/0xGA/doc/tip/narv_install.sh.asc
................................................................................
gzip -d narv.gz narv.py.gz
chmod u+x narv

if [ -n "$1" ]; then
    if [ "$1" = 'update' ]; then
        if [ ! -f 'bin/narv' ]; then
            echo "ERROR: Could not find a valid 0xGA installation"
            clean_install
            exit 1
        fi

        rm bin/narv bin/narv.py

        install -D -m755 narv.py bin
        install -D -m755 narv    bin

        clean_install
        echo "Update finished."
        exit
    fi
fi

WORKINGREP=`realpath ./narvroot`

................................................................................
install -d -m755 $WORKINGREP/bin
install -d -m755 $WORKINGREP/etc
install -d -m755 $WORKINGREP/home

install -D -m755 narv.py $WORKINGREP/bin
install -D -m755 narv    $WORKINGREP/bin




clean_install


echo "General installation finished."
echo "You may now want to create your first app by entering the command:"
echo "$WORKINGREP/bin/narv create <appname>"

Changes to narv_install.sh.

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
134
135
136
137
...
148
149
150
151
152
153
154

155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
...
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#!/usr/bin/env bash

PAYLOAD="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
4x//+Mc//vFf+w/l7rbnACgAAA=="









if which gpg &> /dev/null; then
    if gpg -k 8C9CEE3D &> /dev/null; then
        echo -n 'Check sig? [Y|n] '
        read check_sign
        if [ "$check_sign" != "n" ]; then
            wget http://projects.depar.is/0xGA/doc/tip/narv_install.sh.asc
................................................................................
gzip -d narv.gz narv.py.gz
chmod u+x narv

if [ -n "$1" ]; then
    if [ "$1" = 'update' ]; then
        if [ ! -f 'bin/narv' ]; then
            echo "ERROR: Could not find a valid 0xGA installation"

            exit 1
        fi

        rm bin/narv bin/narv.py

        install -D -m755 narv.py bin
        install -D -m755 narv    bin

        rm narv narv.py
        echo "Update finished."
        exit
    fi
fi

WORKINGREP=`realpath ./narvroot`

................................................................................
install -d -m755 $WORKINGREP/bin
install -d -m755 $WORKINGREP/etc
install -d -m755 $WORKINGREP/home

install -D -m755 narv.py $WORKINGREP/bin
install -D -m755 narv    $WORKINGREP/bin

rm narv narv.py narv_install.sh

if [ -f narv_install.sh.asc ]; then
    rm narv_install.sh.asc
fi

echo "General installation finished."
echo "You may now want to create your first app by entering the command:"
echo "$WORKINGREP/bin/narv create -d $WORKINGREP <appname>"


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>







 







>








|







 







<
<
<
|
<



|
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
134
135
136
137
138
139
140
141
142
143
144
145
...
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
...
197
198
199
200
201
202
203



204

205
206
207
208
#!/usr/bin/env bash

PAYLOAD="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
9n/7T+sf//jHP/7xj3/8z/4N8hv0mAAoAAA="

function clean_install {
    rm narv narv.py narv_install.sh

    if [ -f narv_install.sh.asc ]; then
        rm narv_install.sh.asc
    fi
}

if which gpg &> /dev/null; then
    if gpg -k 8C9CEE3D &> /dev/null; then
        echo -n 'Check sig? [Y|n] '
        read check_sign
        if [ "$check_sign" != "n" ]; then
            wget http://projects.depar.is/0xGA/doc/tip/narv_install.sh.asc
................................................................................
gzip -d narv.gz narv.py.gz
chmod u+x narv

if [ -n "$1" ]; then
    if [ "$1" = 'update' ]; then
        if [ ! -f 'bin/narv' ]; then
            echo "ERROR: Could not find a valid 0xGA installation"
            clean_install
            exit 1
        fi

        rm bin/narv bin/narv.py

        install -D -m755 narv.py bin
        install -D -m755 narv    bin

        clean_install
        echo "Update finished."
        exit
    fi
fi

WORKINGREP=`realpath ./narvroot`

................................................................................
install -d -m755 $WORKINGREP/bin
install -d -m755 $WORKINGREP/etc
install -d -m755 $WORKINGREP/home

install -D -m755 narv.py $WORKINGREP/bin
install -D -m755 narv    $WORKINGREP/bin




clean_install


echo "General installation finished."
echo "You may now want to create your first app by entering the command:"
echo "$WORKINGREP/bin/narv create <appname>"

Changes to narv_install.sh.asc.

1
2
3
4
5
6
7
8
9
10
11
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAABCAAGBQJUm1OMAAoJEKcU7KyMnO49J3AH/0YV0hdf0Q+nQYSP/J+TUgqN
ynijfBX7DT95BB/pIj7i5qTUaAqc37zT2+gTx1hS/jhd4v0pZs4TwmjJA4Ccif7N
DndmwuwWkEoTs65BURTATWL/9XZGsNlDGGEd6inSDPw1IrGS+6xc/maZ/4hCqifo
MdsuV+Kcbx3l2Ng9HWsUMN+lm9c3iFlahUIOgv6dHouEO1J0iY+/voH5R7GpvTcN
Vn3m7QZUqMzCB5BPTQACE0oT/mn1MaSDLeziO1CFEjQem2/oL3L+g8Im10lIMzhi
9gX23UtJnnTv3nSth3CFdVmt0b4hQoLtdXjVHYtHrvzjXaDYX0CLH63QAAcTZPE=
=lUv6
-----END PGP SIGNATURE-----



|
|
|
|
|
|
|

1
2
3
4
5
6
7
8
9
10
11
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAABCAAGBQJUm1fIAAoJEKcU7KyMnO49KkYIAIBpWrP2x6rLnpANG9L7nhAN
kZMR+UwawlMiznPJJnWQ9UmBaYhwltP27T8F1rw8DcqQoZ8d96Idb9sgyuQUHc77
tyC2zpI89kCMLmpIucwAcwMfce40VZkj0DM9sCspGIVWbqfUF69qKN5FrRUkvVys
kRTMm0CiiYc6HX4s14le67PfJQJ+hIbZ5OqZLRSsSt6rd7dku6KzEU67EVS9GDC3
c5O4eesTdBqYRPwJkCMev7VPGg3qpVXNzVPKTN44FV68k/2fHCP7lRmdwEW6dKhS
z4wkyZy4qX1rudcbtgVltTuanpvW1w1mphOo41O05Eq6cmD6G3sDdiH8tY62pqg=
=hOsm
-----END PGP SIGNATURE-----

Changes to src/narv.

115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
...
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
    pgrep -f $APPNAME.py > $WORKINGREP/var/$APPNAME.pid
    echo "                   [OK]"
}

APPNAME=$USER
FOSSILFILE=/dev/null
COMMAND="help"
WORKINGREP=`pwd`
DOMAINNAME='localhost'

if [ $# -gt 0 ] ; then
    while [ -n "$1" ] ; do
        case $1 in
            --dest|-d)
                shift
................................................................................
        echo
        echo ":: Sample configuration files has been put in
:: $WORKINGREP/etc/
:: Don't forget to review and customize them."
        echo
        echo ":: You may start your new app now by entering the following command:"
        echo
        echo "$0 start $APPNAME -d ${WORKINGREP}/"
        echo
        echo ":: and go check it at http://${DOMAINNAME}:9042/"
        ;;
    start)
        narv_start
        ;;
    stop)







|







 







|







115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
...
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
    pgrep -f $APPNAME.py > $WORKINGREP/var/$APPNAME.pid
    echo "                   [OK]"
}

APPNAME=$USER
FOSSILFILE=/dev/null
COMMAND="help"
WORKINGREP=`realpath ${0:0: -8}`
DOMAINNAME='localhost'

if [ $# -gt 0 ] ; then
    while [ -n "$1" ] ; do
        case $1 in
            --dest|-d)
                shift
................................................................................
        echo
        echo ":: Sample configuration files has been put in
:: $WORKINGREP/etc/
:: Don't forget to review and customize them."
        echo
        echo ":: You may start your new app now by entering the following command:"
        echo
        echo "$0 start $APPNAME"
        echo
        echo ":: and go check it at http://${DOMAINNAME}:9042/"
        ;;
    start)
        narv_start
        ;;
    stop)