0xGA: Check-in [667278b4cd]

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

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

Overview
Comment:Other bug
Timelines: family | ancestors | descendants | both | narv
Files: files | file ages | folders
SHA1:667278b4cd42e9acb8e1a8b4a783b22345c68584
User & Date: milouse 2014-12-30 11:31:11
Context
2015-01-22
10:02
Fix bug in README.md, which causes dead links to tickets check-in: f5d2be2673 user: milouse tags: narv
2014-12-30
11:31
Other bug check-in: 667278b4cd user: milouse tags: narv
11:23
Update narv installer check-in: 4138c08171 user: milouse tags: narv
Changes

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
138
139
#!/usr/bin/env bash

PAYLOAD="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
8Y9//OMf/5/5DyahzVcAKAAA"

function clean_install {
    rm narv narv.py narv_install.sh

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


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







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
#!/usr/bin/env bash

PAYLOAD="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
j3/84x//+P/M/wDslmpsACgAAA=="

function clean_install {
    rm narv narv.py narv_install.sh

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

Changes to narv_install.sh.asc.

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

iQEcBAABCAAGBQJUon0EAAoJEKcU7KyMnO49G1YH/3Ec0Lhxga9hciuJRVrxnTq4
IfVF1xmOioI5FyLsAaaZpgvZJhKNGZm45OYnEKB0SQ24pP72hqcgZxD6bv3oDGAR
sGbx/xVj8zsl02j6iIVUsPsdtO9VFNHw/DHNwOV1TCAkwuQZKrQjYx7+gre6WD1c
JU0ZHE8aLRoOEgZrBqctaocbONniUcezlDSGafGEzKcEF2g3sR4OSa/z+AZs1t5u
UivUcSqKSwVPm0jCeT+40iynjKrcmZDmsaqIAIgiZGpceLMQFsQVh8QUq2ycfgJ0
axh4TBwi67mfBek6pZm+BPLpdZ+dSDDTjyLhWZd+ZH79LDsbQztyc97K5y7M8MQ=
=f6fR
-----END PGP SIGNATURE-----



|
|
|
|
|
|
|

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

iQEcBAABCAAGBQJUon7YAAoJEKcU7KyMnO49pDkIALCpyQijgdz8C/EHgbO2VKr0
vWUJ5PdfRh0pEQPmwr+fyl7RFx18+6wqPhoZIfid2KrKLGcFNyr4vh5uUS1zHCBo
yCwvjUsBYgnB8T9bVofJDcHgb+1WIARJGOLE3KJQ9N4KRlpBb+vzN1v3Ppx50sqB
g02/cCq3HTV1oBv2KyazIJ7Iel4iBPcHvRgBS/VM+8jMPP6d5eYL7N26uV+OVR3j
l7xeqxEPizj0kNKvfKY622YiURyVNDseRCqgIC1wEnyHFSD2ASUVQ0fcMvwf25xR
Nh7VdUIlI35UJJ3qX9FF+FqA42CI4roT7O79LHfo0DiSxKGhlT9x/R+Lh4r40ik=
=Yiaa
-----END PGP SIGNATURE-----

Changes to src/narv.

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
..
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
...
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
...
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254

--dest|-d <value>: working repository. Default is pwd
--host|-H <value>: domain name of your website. Default is localhost
EOF
}

function narv_start {
    if [ -f "$WORKINGREP/var/$APPNAME.pid" ] ; then
        echo "Your Narv application is already running."
        exit 1;
    elif pgrep -f $APPNAME.py >/dev/null ; then
        pgrep -f $APPNAME.py > $WORKINGREP/var/$APPNAME.pid
        echo "Your Narv application seems to be always running. Try $0 stop $APPNAME"
        exit 1;
    fi

    daemon_begin_log_line "Starting $WORKINGREP/bin/$APPNAME.py"

    python3 $WORKINGREP/bin/$APPNAME.py &
    pgrep -f $APPNAME.py > $WORKINGREP/var/$APPNAME.pid
    daemon_end_log_line 0
}

function narv_stop {
    if [ ! -f "$WORKINGREP/var/$APPNAME.pid" ] ; then
        echo "Your Narv application is NOT running."
        exit 1;
    fi
    daemon_begin_log_line "Stopping $WORKINGREP/bin/$APPNAME.py"
    pkill -f $APPNAME.py
    rm $WORKINGREP/var/$APPNAME.pid
    if pgrep -f $APPNAME.py >/dev/null ; then
        yup=no
        count=0
        while [ "$yup" != "yes" ] ; do
            sleep 1
            daemon_waiter_log "."
            if pgrep -f $APPNAME.py >/dev/null ; then
................................................................................
        echo "Aaaoooww :s"
        exit $?
    fi
    daemon_end_log_line 0
}

function narv_restart {
    if [ ! -f "$WORKINGREP/var/$APPNAME.pid" ] ; then
        echo "Your Narv application is NOT running."
        exit 1;
    fi
    echo -n "Stopping $WORKINGREP/bin/$APPNAME.py"
    pkill -f $APPNAME.py
    echo "                   ..."
    echo -n "Starting $WORKINGREP/bin/$APPNAME.py"
    $WORKINGREP/bin/$APPNAME.py &
    pgrep -f $APPNAME.py > $WORKINGREP/var/$APPNAME.pid
    echo "                   [OK]"
}

APPNAME=$USER
FOSSILFILE=/dev/null
COMMAND="help"
WORKINGREP=`realpath ${0:0: -8}`
................................................................................
[Unit]
Description=%i Narv Web Application
After=network.target

[Service]
Type=simple
User=nobody
PIDFile=${WORKINGREP}/var/%i.pid
ExecStart=${WORKINGREP}/bin/narv start %i -d ${WORKINGREP}/
ExecStop=${WORKINGREP}/bin/narv stop %i -d ${WORKINGREP}/

[Install]
WantedBy=network.target
EOF

................................................................................
        daemon_end_log_line 0
        echo
        echo ":: Some sample configuration files has been put in
:: $WORKINGREP/etc/
:: Don't forget to review and customize them."
        echo
        echo ":: A systemd unit file has been put in
:: $WORKINGREP/var/narv@${APPNAME}.service
:: You can create a symbolic link to it in /etc/systemd/system/"
        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/"







|



|







|




|





|







 







|








|







 







|







 







|







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
..
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
...
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
...
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254

--dest|-d <value>: working repository. Default is pwd
--host|-H <value>: domain name of your website. Default is localhost
EOF
}

function narv_start {
    if [ -f "$WORKINGREP/var/tmp/$APPNAME.pid" ] ; then
        echo "Your Narv application is already running."
        exit 1;
    elif pgrep -f $APPNAME.py >/dev/null ; then
        pgrep -f $APPNAME.py > $WORKINGREP/var/tmp/$APPNAME.pid
        echo "Your Narv application seems to be always running. Try $0 stop $APPNAME"
        exit 1;
    fi

    daemon_begin_log_line "Starting $WORKINGREP/bin/$APPNAME.py"

    python3 $WORKINGREP/bin/$APPNAME.py &
    pgrep -f $APPNAME.py > $WORKINGREP/var/tmp/$APPNAME.pid
    daemon_end_log_line 0
}

function narv_stop {
    if [ ! -f "$WORKINGREP/var/tmp/$APPNAME.pid" ] ; then
        echo "Your Narv application is NOT running."
        exit 1;
    fi
    daemon_begin_log_line "Stopping $WORKINGREP/bin/$APPNAME.py"
    pkill -f $APPNAME.py
    rm $WORKINGREP/var/tmp/$APPNAME.pid
    if pgrep -f $APPNAME.py >/dev/null ; then
        yup=no
        count=0
        while [ "$yup" != "yes" ] ; do
            sleep 1
            daemon_waiter_log "."
            if pgrep -f $APPNAME.py >/dev/null ; then
................................................................................
        echo "Aaaoooww :s"
        exit $?
    fi
    daemon_end_log_line 0
}

function narv_restart {
    if [ ! -f "$WORKINGREP/var/tmp/$APPNAME.pid" ] ; then
        echo "Your Narv application is NOT running."
        exit 1;
    fi
    echo -n "Stopping $WORKINGREP/bin/$APPNAME.py"
    pkill -f $APPNAME.py
    echo "                   ..."
    echo -n "Starting $WORKINGREP/bin/$APPNAME.py"
    $WORKINGREP/bin/$APPNAME.py &
    pgrep -f $APPNAME.py > $WORKINGREP/var/tmp/$APPNAME.pid
    echo "                   [OK]"
}

APPNAME=$USER
FOSSILFILE=/dev/null
COMMAND="help"
WORKINGREP=`realpath ${0:0: -8}`
................................................................................
[Unit]
Description=%i Narv Web Application
After=network.target

[Service]
Type=simple
User=nobody
PIDFile=${WORKINGREP}/var/tmp/%i.pid
ExecStart=${WORKINGREP}/bin/narv start %i -d ${WORKINGREP}/
ExecStop=${WORKINGREP}/bin/narv stop %i -d ${WORKINGREP}/

[Install]
WantedBy=network.target
EOF

................................................................................
        daemon_end_log_line 0
        echo
        echo ":: Some sample configuration files has been put in
:: $WORKINGREP/etc/
:: Don't forget to review and customize them."
        echo
        echo ":: A systemd unit file has been put in
:: $WORKINGREP/var/tmp/narv@${APPNAME}.service
:: You can create a symbolic link to it in /etc/systemd/system/"
        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/"