#!/usr/bin/env python

#to update the soft link(if not exist, create it) to the latest kernel in 
#funtoo system.
#The kernel generated by genkernel is in the form of
#kernel-genkernel-x86-3.5.4-gentoo
#initramfs-genkernel-x86-3.5.4-gentoo
#System.map-genkernel-x86-3.5.4-gentoo
#what we want to do is to strip the stuff behind the version.
#kernel-genkernel-x86
#initramfs-genkernel-x86
#System.map-genkernel-x86


#most routines are in the os module shipped with python std lib

import os

target_dir = "/boot/"
arch = os.uname()[4]

if arch == "x86_64":
        pass
else:
        arch = "x86"

sl_kernel = "kernel-genkernel-" + arch 
sl_initrd = "initramfs-genkernel-" + arch
sl_sysmap = "System.map-genkernel-" + arch

if os.path.exists(target_dir + sl_kernel):
	os.remove(target_dir + sl_kernel)
if os.path.exists(target_dir + sl_initrd):
	os.remove(target_dir + sl_initrd)
if os.path.exists(target_dir + sl_sysmap):
	os.remove(target_dir + sl_sysmap)



#print sl_kernel

all_files = os.listdir(target_dir)
kernel_list= []
initrd_list=[]
sysmap_list = []

for name in all_files:
        if name.endswith("gentoo"):
                if name.startswith("kernel") :
                        kernel_list.append(name)
#                        print kernel_list
                elif name.startswith("initramfs"):
                        initrd_list.append(name)
#                        print initrd_list
                elif name.startswith("System.map"):
                        sysmap_list.append(name)
#                        print sysmap_list
        kernel_list.sort()
        initrd_list.sort()
        sysmap_list.sort()

target_kernel = kernel_list[len(kernel_list)-1]
target_initrd = initrd_list[len(initrd_list)-1]
target_sysmap = sysmap_list[len(sysmap_list)-1]

#print target_sysmap,target_kernel,target_initrd


try:
	os.symlink(target_dir + target_kernel,target_dir + sl_kernel)
	os.symlink(target_dir + target_initrd,target_dir + sl_initrd)
	os.symlink(target_dir + target_sysmap,target_dir + sl_sysmap)
except:
        print "Do you have permission? pls run as root!"
else:
	print "Done!"




        







Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐