0xGA: Check-in [8b6dde1283]

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

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

Overview
Comment:Updated install script
Timelines: family | ancestors | descendants | both | narv
Files: files | file ages | folders
SHA1:8b6dde12838a43af9c47bfcb36f783e6fe606045
User & Date: milouse 2014-05-21 22:35:52
Context
2014-05-21
23:14
Add sqlite to chroot env and fix sqlite database creation check-in: cef06cebce user: milouse tags: narv
22:35
Updated install script check-in: 8b6dde1283 user: milouse tags: narv
22:29
Add poke command to narv script. Take into account already existing articles in narvblog.py index method. check-in: 90c4b69fbd user: milouse tags: narv
Changes

Changes to README.md.

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
------------

The code is released under the terms of the [WTFPL v2](http://sam.zoy.org/wtfpl/). Feel free to submit [new tickets or bug reports](tktnew) or share [proposals](tktnew?type=Feature_Request&severity=Cosmetic).

Install
-------

It is as simple as the following command: `wget -O narv_install.sh http://projects.depar.is/0xGA/raw/narv_install.sh?name=604bfbadcc && bash narv_install.sh`

It require the following commands to be present on your system:

- base64
- gzip
- install
- wget







|







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
------------

The code is released under the terms of the [WTFPL v2](http://sam.zoy.org/wtfpl/). Feel free to submit [new tickets or bug reports](tktnew) or share [proposals](tktnew?type=Feature_Request&severity=Cosmetic).

Install
-------

It is as simple as the following command: `wget -O narv_install.sh http://projects.depar.is/0xGA/raw/narv_install.sh?name=a9ea8aa030 && bash narv_install.sh`

It require the following commands to be present on your system:

- base64
- gzip
- install
- wget

Changes to example/narvblog.py.

129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
                        article = Article(self.appname)
                        article.find(article_local_path, 'permalink')

                        if article.is_new():
                            article.date = art_date
                            article.title = title
                            article.permalink = article_local_path
                        
                            article.extract_abstract()
                            article.save()
                            total += 1

        logging.info('{0} article(s) have been indexed'.format(total))









|







129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
                        article = Article(self.appname)
                        article.find(article_local_path, 'permalink')

                        if article.is_new():
                            article.date = art_date
                            article.title = title
                            article.permalink = article_local_path

                            article.extract_abstract()
                            article.save()
                            total += 1

        logging.info('{0} article(s) have been indexed'.format(total))


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






























140
141
142
143
144
145
146
...
156
157
158
159
160
161
162

163
164
165
166
167
168
169
170
171
172
173
174
175
#!/usr/bin/env bash

PAYLOAD="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
/wAquUz4ACgAAA=="































WORKINGREP=`realpath ./narvroot`

echo "$PAYLOAD" | base64 -d > narv.tar.gz
tar xzf narv.tar.gz
rm narv.tar.gz
gzip -d narv.gz narv.py.gz
................................................................................
This program will now exit to let you do all the necessary things before."
    exit 1
fi

mkdir $WORKINGREP

echo ":: creating shared necessary directories structure"

install -dm 755 $WORKINGREP/var/log
install -dm 777 $WORKINGREP/var/tmp
install -dm 755	$WORKINGREP/usr/bin
install -dm 755	$WORKINGREP/etc

install -Dm 755 narv.py $WORKINGREP/usr/bin
install -Dm 755 narv    $WORKINGREP/usr/bin

rm narv narv.py

echo "General installation finished."
echo "You may now want to create your first app by entering the command:"
echo "$WORKINGREP/usr/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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
...
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#!/usr/bin/env bash

PAYLOAD="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"

WORKINGREP=`realpath ./narvroot`

echo "$PAYLOAD" | base64 -d > narv.tar.gz
tar xzf narv.tar.gz
rm narv.tar.gz
gzip -d narv.gz narv.py.gz
................................................................................
This program will now exit to let you do all the necessary things before."
    exit 1
fi

mkdir $WORKINGREP

echo ":: creating shared necessary directories structure"
install -dm 755 $WORKINGREP/var/db
install -dm 755 $WORKINGREP/var/log
install -dm 777 $WORKINGREP/var/tmp
install -dm 755	$WORKINGREP/usr/bin
install -dm 755	$WORKINGREP/etc

install -Dm 755 narv.py $WORKINGREP/usr/bin
install -Dm 755 narv    $WORKINGREP/usr/bin

rm narv narv.py

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