一个录制终端并分享的网站ascii.io

发现一个网站,可以在本地录制终端操作,然后上传到网站http://ascii.io/ 。它吸引我的地方,是操作简单,上传方便,网站宗旨是和他人分享自己的cool操作,可以用github帐号登录。同时,作者https://github.com/sickill ,大量的ruby项目是学习的好资料。

1
2
3
$ curl -sL get.ascii.io | bash
$ asciiio
$ asciiio auth
  • 采用Ruby on Rails框架
  • 采用ruby+perl语言编写,ruby就是下一代的perl
  • 采用PostgreSQL数据库

安装脚本:对于shell脚本的编写,值得借鉴

  • 对安装路径的判断
  • 是否调用sudo的判断
  • curl使用
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
#!/bin/bash
# ascii.io recorder installation script
BIN_NAME="asciiio"
BIN_URL="https://raw.github.com/sickill/ascii.io-cli/master/bin/asciiio"
SUDO=""
if [ -d "$HOME/bin" ] && [[ ":$PATH:" == *":~/bin:"* || ":$PATH:" == *":$HOME/bin:"* ]]; then
TARGET="$HOME/bin/$BIN_NAME"
echo "Installing to $TARGET..."
elif [ -d "/usr/local/bin" ] && [[ ":$PATH:" == *":/usr/local/bin:"* ]]; then
TARGET="/usr/local/bin/$BIN_NAME"
echo "Installing to $TARGET..."
if [ ! -w /usr/local/bin ]; then
SUDO=sudo
echo "You may be asked for sudo password to save the file in /usr/local/bin directory"
fi
else
TARGET="./$BIN_NAME"
echo "Couldn't find ~/bin or /usr/local/bin in your \$PATH, saving in current dir..."
fi
$SUDO curl -skL $BIN_URL -o $TARGET
if [[ $? == 0 ]]; then
$SUDO chmod +x $TARGET
echo "Done. Now start recording by typing \"asciiio\"."
else
echo "Oopsie, something unexpected happened."
fi

录制脚本:将各个模块组合成瑞士军刀

  • 模块ConfigParser用于读取.ini文件
  • 模块glob处理路径匹配,是Gan写的第一个python模块
  • 模块select
  • 模块shutil处理系统操作,如rmtree
  • 模块fcntl
  • 模块signal处理信号
  • 模块tty处理终端设置
  • 模块bz2处理文件压缩
  • 模块time
  • 模块StringIO
  • 模块json
  • 模块subprocess.Popen执行系统命令,将输入输出导入管道
吴羽舒 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!