Решил тут поучить пейтона и перепейсать на нем reporebuild - чисто в качестве профилактики и изучения. В итоге долго мучился с getopt - не мог получить список пакетов для пересборки, или же параметр совсем не передавался и скрипт завершал свою работу. Без разных доков (коих я не смог найти, а на python.org зайти не мог по причине отвалившегося тырнета) я нащупал примерно это:
Конечно, немного кривовато, но, по крайней мере, работает.

def main():
try:
opt, args = getopt.getopt(sys.argv[1:], "abcflh", ["all", "build", "cfgcheck", "fetch", "localbuild", "help"])
except getopt.GetoptError, err:
print colored ('Wrong option!', 'red')
usage()
sys.exit(255)
for option, args in opt:
if option in ("-a", "--all"):
BuildAll()
elif option in ("-b", "--build"):
BuildFromAur(sys.argv[1:])
elif option in ("-c", "--cfgcheck"):
CfgCheck()
elif option in ("-f", "--fetch"):
FetchFromAur(sys.argv[1:])
elif option in ("-h", "--help"):
usage()
sys.exit(0)
elif option in ("-l", "--localbuild"):
BuildFromLocal(sys.argv[1:])Конечно, немного кривовато, но, по крайней мере, работает.
никак не могу понять - зачем юзать getopt, когда можно просто в цикле перебрать те же "if opt[i] in ("-a", "--all"):"?
ОтветитьУдалитьСамое интересное - что не хочет работать простой перебор :D Да и опять же - если работает, то не трожь. Дополнительной нагрузки все равно не создает такая обработка, так что IDC в данном случае.
ОтветитьУдалитьИ как было написано - курил getopt самолично, на пейтонорг не заходилось :(