InTxT

好久没有发布新版,我还以为官方放弃了这个项目。

升级脚本还是好用的。

在湾区日报看到这样一篇文章

近两年的时间,每天花至少十分钟,写完并出版了一本c++编程书。499天,每天用少于15分钟;只有5天,每天花超过1小时。很多天只是盯着屏幕10分钟,假装写书有所进展。坚持的力量! 其中有个心理暗示很不错:他规定自己在每天10分钟写书的活动后,才能查个人的电子邮件。如此就养成了习惯。

原文链接是 Ten minutes a day

很有启发。这种策略适合做个人的项目,包括写博客,比如,我是不是可以定一个每天写十分钟的计划,一个周甚至两个周写完一篇文章。

先创建一个目录,把升级脚本放在这里。脚本执行完之后,临时文件和之前版本的 writefreely 文件备份也都会在这个目录里。

第一次使用时,先把下面的脚本放到目录中,假设文件名叫做 upgrade.sh。然后执行 ./upgrade.sh <version> <dst_dir> 进行升级。

#!/bin/bash

set -o errexit


SERVICE_NAME="writefreely"
WORKING_DIR="$(cd "$(dirname "$0")"; pwd -P)"
TEMP_DIR="$WORKING_DIR/writefreely_temp"
BAK_DIR="$WORKING_DIR/.bak"


clean() {
    echo "clean"
    rm -fr $TEMP_DIR/*
}


usage() {
    echo "Usage: $(basename -- "$0") <version> <dst_dir>"
}

bak() {
    local dst=$1	
    echo "back up $dst"
    tar czvf $BAK_DIR/writefreely_bak_$(date +%s).tar.gz $dst
}

download() {
    echo "downloading..."
    local version=$1
    rm -f $WORKING_DIR/writefreely_${version}_linux_amd64.tar.gz
    rm -f $WORKING_DIR/writefreely_${version}_linux_amd64.tar.gz*
    wget "https://github.com/writeas/writefreely/releases/download/v${version}/writefreely_${version}_linux_amd64.tar.gz" -O "${WORKING_DIR}/writefreely_${version}_linux_amd64.tar.gz"
}

extract() {
    echo "extracting..."
    local version=$1
    tar xzvf writefreely_${version}_linux_amd64.tar.gz -C "$TEMP_DIR"
}

stop() {
    echo "stop service"
    sudo service $SERVICE_NAME stop
}

start() {
    echo "start service"
    sudo service $SERVICE_NAME start
}

upgrade() {
    local dst=$1
    echo "upgrading..."
    cp -r $TEMP_DIR/* $dst
}

main() {
    if [[ ! $# -eq 2 ]]; then
        usage
        exit -1
    fi
    mkdir -p "$BAK_DIR"
    mkdir -p "$TEMP_DIR"
    clean
    bak $2
    download $1
    extract $1
    stop
    upgrade $2
    start
}

main [email protected]

简单的记录

自关注 writefreely 以来,0.6 到 0.7 版之间的时间跨度最长。

之前我看各个小版本的发布间隔大概是一个周。0.6 版开始支持 sqlite3 储存,我在试用时却发现程序在创建用户时挂起,也懒得提 issue,打算再等一个周出新版再说,结果却迟迟等不来 0.7 版。

总算是更新了,而程序挂起的 bug 也确实修复了。奇怪的是,与这个问题相关的 issue 是最近一两天才有人提出来的。