私は私のシステムに何があるのか、何が更新されているのかを追跡するのが好きです。しかし、gedit 3.6.2-1から3.6.2-2への変更などのマイナーなアップデートがたくさんあり、あまり考えたくありません。
バージョン番号の最初または2番目の段落の変更など、パックマンのメジャーアップデートを強調表示する簡単な方法はありますか? (もちろん、このヒューリスティックがあまり役に立たないことはわかりますが、すでに誰かが解決した問題のようです。)
以下は、いくつかのマイナーな更新を含む例です。
automake 1.12.5-1 1.12.6-1 0.00 MiB
bison 2.6.5-1 2.7-1 0.03 MiB
cdrtools 3.01a09-1 3.01a10-1 0.00 MiB
cifs-utils 5.7-1 5.8-1 0.00 MiB
icu 50.1-2 50.1.1-1 -0.04 MiB
isl 0.11-1 0.11.1-1 0.01 MiB
lib32-libpulse 2.1-1 3.0-1 0.03 MiB
lib32-sqlite 3.7.14.1-1 3.7.15-1 0.00 MiB
libpulse 2.1-1 3.0-2 0.16 MiB
libwbclient 3.6.9-1 3.6.10-1 0.00 MiB
linux 3.6.9-1 3.6.10-1 0.01 MiB
ntp 4.2.6.p5-11 4.2.6.p5-13 -0.05 MiB
pixman 0.28.0-1 0.28.2-1 0.00 MiB
pulseaudio 2.1-1 3.0-2 -0.05 MiB
python2-beaker 1.6.3-2 1.6.4-1 0.03 MiB
python2-distribute 0.6.30-1 0.6.32-1 0.02 MiB
python2-mako 0.7.2-2 0.7.3-1 0.00 MiB
python2-pyparsing 1.5.6-3 1.5.7-1 0.00 MiB
python2-xdg 0.23-2 0.25-1 0.02 MiB
samba 3.6.9-1 3.6.10-1 0.02 MiB
sbc 1.0-1 0.24 MiB
smbclient 3.6.9-1 3.6.10-1 0.00 MiB
sqlite 3.7.14.1-1 3.7.15-1 0.01 MiB
vlc 2.0.4-5 2.0.5-1 -1.42 MiB
wesnoth-data 1.10.5-1 1.10.5-2 98.07 MiB
xorg-server 1.13.0.902-2 1.13.1-1 0.00 MiB
xorg-server-common 1.13.0.902-2 1.13.1-1 0.00 MiB
Pulse Audio 2.1 - > 3.0とカーネルのアップデートはそこに隠されています。もっと目立つといいですね。
答え1
パックマンはありませんが、提供した入力例に基づいてこれをテストし、次のようにファイルに保存して標準に渡しました。
cat versioninfo.dat | python highlight_major_versions.py
同様に、pacmanコマンドの出力をコードにパイプできるようにする必要があります。マイコンピュータの出力は次のとおりです。
青はメジャーバージョンの更新(例:最初の段落)を示します。黄色はマイナーバージョンの更新(2番目の段落)を示します。赤は不足しているバージョン情報を示します。この場合、ライブラリはこのアップデートの新しいものです。私はバージョン管理について賢いことをしません-
。-
関連点分離セグメントの一部として計算されます。
#!/usr/bin/env python
import fileinput
# ANSI escape codes for some colours
BLUE = '\033[94m'
YELLOW = '\033[93m'
RED = '\033[91m'
ENDC = '\033[0m'
def colourise_by_version_change(line, prev_v, new_v):
''' Colourise the input line based on major/minor version change.'''
prev_segments = prev_v.split('.')
new_segments = new_v.split('.')
coloured_line = line
if new_segments[0] > prev_segments[0]:
coloured_line = BLUE + line + ENDC
elif new_segments[1] > prev_segments[1]:
coloured_line = YELLOW + line + ENDC
return coloured_line
if __name__ == '__main__':
for line in fileinput.input():
line = line.strip()
elements = line.split()
if len(elements) == 5:
name, prev_v, new_v, size, size_unit = elements[:5]
line = colourise_by_version_change(line, prev_v, new_v)
# There's something missing, so point it out (e.g. a new version)
else:
line = RED + line + ENDC
print line