release 016
[gregoa/bti.git] / bti.xml
1 <?xml version='1.0'?>
2 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4
5 <article>
6   <section>
7     <title>bti</title>
8     <refentry>
9       <refentryinfo>
10         <title>bti</title>
11         <date>May 2008</date>
12         <productname>bti</productname>
13       </refentryinfo>
14
15       <refmeta>
16         <refentrytitle>bti</refentrytitle>
17         <manvolnum>1</manvolnum>
18         <refmiscinfo class="version"></refmiscinfo>
19       </refmeta>
20
21       <refnamediv>
22         <refname>bti</refname>
23         <refpurpose>send a tweet to twitter.com or identi.ca from the command line</refpurpose>
24       </refnamediv>
25
26       <refsynopsisdiv>
27         <cmdsynopsis>
28           <command>bti</command>
29           <arg><option>--account account</option></arg>
30           <arg><option>--password password</option></arg>
31            <arg><option>--action action</option></arg>
32            <arg><option>--user screenname</option></arg>
33           <arg><option>--host HOST_NAME</option></arg>
34           <arg><option>--proxy PROXY:PORT</option></arg>
35           <arg><option>--logfile LOGFILE</option></arg>
36           <arg><option>--bash</option></arg>
37           <arg><option>--shrink-urls</option></arg>
38           <arg><option>--debug</option></arg>
39           <arg><option>--dry-run</option></arg>
40           <arg><option>--version</option></arg>
41           <arg><option>--help</option></arg>
42         </cmdsynopsis>
43       </refsynopsisdiv>
44
45       <refsect1><title>DESCRIPTION</title>
46         <para>bti sends a tweet message to twitter.com or identi.ca.
47         </para>
48       </refsect1>
49
50       <refsect1><title>OPTIONS</title>
51         <variablelist>
52           <varlistentry>
53             <term><option>--account account</option></term>
54             <listitem>
55               <para>
56                 Specify the twitter.com or identi.ca account name.
57               </para>
58             </listitem>
59           </varlistentry>
60           <varlistentry>
61             <term><option>--password password</option></term>
62             <listitem>
63               <para>
64                 Specify the password of your twitter.com or identi.ca account.
65               </para>
66             </listitem>
67           </varlistentry>
68           <varlistentry>
69             <term><option>--action action</option></term>
70             <listitem>
71               <para>
72                 Specify the action which you want to perform.  Valid options
73                 are "update" to send a message, "friends" to see your friends
74                 timeline, "public" to track public timeline, "replies" to see
75                 replies to your messages and "user" to see a specific user's
76                 timeline.
77               </para>
78             </listitem>
79           </varlistentry>
80           <varlistentry>
81             <term><option>--user screenname</option></term>
82             <listitem>
83               <para>
84                 Specify the user you want to see his/her messages while the
85                 action is "user".
86               </para>
87             </listitem>
88           </varlistentry>
89           <varlistentry>
90             <term><option>--host HOST_NAME</option></term>
91             <listitem>
92               <para>
93                 Specify the host which you want to send your message to.  Valid
94                 options are "twitter" to send to twitter.com and "identica" to
95                 send to identi.ca.
96               </para>
97               <para>
98                 If no host is specified, the default is to send to twitter.com.
99               </para>
100             </listitem>
101           </varlistentry>
102           <varlistentry>
103             <term><option>--proxy PROXY:PORT</option></term>
104             <listitem>
105               <para>
106                 Specify a http proxy value.  This is not a required option, and
107                 only needed by systems that are behind a http proxy.
108               </para>
109               <para>
110                 If --proxy is not specified but the environment variable
111                 'http_proxy' is set the latter will be used.
112               </para>
113             </listitem>
114           </varlistentry>
115           <varlistentry>
116             <term><option>--logfile LOGFILE</option></term>
117             <listitem>
118               <para>
119                 Specify a logfile for bti to write status messages to.  LOGFILE
120                 is in relation to the user's home directory, not an absolute
121                 path to a file.
122               </para>
123             </listitem>
124           </varlistentry>
125           <varlistentry>
126             <term><option>--shrink-urls</option></term>
127             <listitem>
128               <para>
129                 Scans the tweet text for valid URL patterns and passes each
130                 through the supplied bti-shrink-urls script.  The script will
131                 pass the URL to a web service that shrinks the URLs, making it
132                 more suitable for micro-blogging.
133               </para>
134               <para>
135                 Currently, only http://2tu.us/ is used as a URL shrinking service.
136               </para>
137             </listitem>
138           </varlistentry>
139           <varlistentry>
140             <term><option>--debug</option></term>
141             <listitem>
142               <para>Print a whole bunch of debugging messages to stdout.</para>
143             </listitem>
144           </varlistentry>
145           <varlistentry>
146             <term><option>--dry-run</option></term>
147             <listitem>
148               <para>
149                 Performs all steps that would normally be done for a given
150                 action, but will not connect to the service to post or retrieve data.
151               </para>
152             </listitem>
153           </varlistentry>
154           <varlistentry>
155             <term><option>--bash</option></term>
156             <listitem>
157               <para>
158                  Add the working directory and a '$' in the tweet message to
159                  help specify it is coming from a command line.  Don't put the
160                  working directory and the '$' in the tweet message.
161               </para>
162               <para>
163                  This mode also does not report back any errors that might have
164                  happened when sending the message, and it sends it in the
165                  background, returning immediately, allowing the process to
166                  continue on.
167                </para>
168             </listitem>
169           </varlistentry>
170           <varlistentry>
171             <term><option>--version</option></term>
172             <listitem>
173               <para>Print version number.</para>
174             </listitem>
175           </varlistentry>
176           <varlistentry>
177             <term><option>--help</option></term>
178             <listitem>
179               <para>Print help text.</para>
180             </listitem>
181           </varlistentry>
182         </variablelist>
183       </refsect1>
184
185       <refsect1>
186         <title>DESCRIPTION</title>
187         <para>
188           bti provides an easy way to send tweet messages direct from the
189           command line or any script.  It reads the message on standard
190           input and uses the account and password settings either from the
191           command line options, or from a config file, to send the message
192           out.
193         </para>
194         <para>
195           It's primary focus is to allow you to log everything that you
196           type into a bash shell, in a crazy, "this is what I'm doing right
197           now!" type of way, letting the world follow along with you
198           constant moving between directories and refreshing your email
199           queue to see if there's anything interesting going on.
200         </para>
201         <para>
202           To hook bti up to your bash shell, export the following variable:
203         </para>
204         <para>
205             <literal>  PROMPT_COMMAND='history 1 | sed -e "s/^\s*[0-9]*\s*//" | bti --bash'</literal>
206         </para>
207         <para>
208           This example assumes that you have the
209           <filename>~/.bti</filename> set up with your account and password
210           information already in it, otherwise you can specify them as an
211           option.
212         </para>
213        </refsect1>
214
215        <refsect1>
216          <title>CONFIGURATION</title>
217          <para>
218            The account and password can be stored in a configuration file
219            in the users home directory in a file named
220            <filename>.bti</filename>  The structure of this file is as
221            follows:
222          </para>
223          <variablelist>
224            <varlistentry>
225              <term><option>account</option></term>
226              <listitem>
227                <para>
228                  The twitter.com or identi.ca account name you wish to use to send this
229                  message with.
230                </para>
231              </listitem>
232            </varlistentry>
233            <varlistentry>
234              <term><option>password</option></term>
235              <listitem>
236                <para>
237                  The twitter.com or identi.ca password for the account you wish to use
238                  to send this message with.
239                </para>
240              </listitem>
241            </varlistentry>
242            <varlistentry>
243             <term><option>--action action</option></term>
244             <listitem>
245               <para>
246                 Specify the action which you want to perform.  Valid options
247                 are "update" to send a message, "friends" to see your friends
248                 timeline, "public" to track public timeline, "replies" to see
249                 replies to your messages and "user" to see a specific user's
250                 timeline.
251               </para>
252             </listitem>
253            </varlistentry>
254            <varlistentry>
255             <term><option>--user screenname</option></term>
256             <listitem>
257               <para>
258                 Specify the user you want to see his/her messages while the
259                 action is "user".
260               </para>
261             </listitem>
262            </varlistentry>
263            <varlistentry>
264              <term><option>host</option></term>
265              <listitem>
266                <para>
267                  The host you want to use to send the message to.  Valid
268                  options are either "twitter" or "identica" to send to
269                  twitter.com or identi.ca respectively.
270                </para>
271              </listitem>
272            </varlistentry>
273            <varlistentry>
274              <term><option>proxy</option></term>
275              <listitem>
276                <para>
277                  The http proxy needed to send data out to the Internet.
278                </para>
279              </listitem>
280            </varlistentry>
281            <varlistentry>
282              <term><option>logfile</option></term>
283              <listitem>
284                <para>
285                  The logfile name for bti to write what happened to.
286                  This file is relative to the user's home directory.  If this
287                  file is not specified here or on the command line, no logging
288                  will be written to the disk.
289                </para>
290              </listitem>
291            </varlistentry>
292            <varlistentry>
293              <term><option>shrink-urls</option></term>
294              <listitem>
295                <para>
296                  Setting this variable to 'true' or 'yes' will enable the URL
297                  shrinking feature.  This is equivalent to using the
298                  --shrink-urls option.
299                </para>
300              </listitem>
301            </varlistentry>
302          </variablelist>
303          <para>
304            There is an example config file called
305            <filename>bti.example</filename> in the source tree that shows
306            the structure of the file if you need an example to work off of.
307          </para>
308          <para>
309            Configuration options have the following priority:
310          </para>
311          <variablelist>
312            <varlistentry>
313              <term></term>
314              <listitem><para>command line option</para></listitem>
315            </varlistentry>
316            <varlistentry>
317             <term></term>
318             <listitem><para>config file option</para></listitem>
319            </varlistentry>
320            <varlistentry>
321              <term></term>
322              <listitem><para>environment variables</para></listitem>
323            </varlistentry>
324          </variablelist>
325          <para>
326            For example, command line options always override any config file
327            option, or any environment variables.
328          </para>
329        </refsect1>
330
331        <refsect1><title>AUTHOR</title>
332          <para>Written by Greg Kroah-Hartman <email>greg@kroah.com</email>.</para>
333        </refsect1>
334
335     </refentry>
336   </section>
337 </article>