本文整理汇总了Golang中github.com/snapcore/snapd/snap.PlaceInfo.MountFile方法的典型用法代码示例。如果您正苦于以下问题:Golang PlaceInfo.MountFile方法的具体用法?Golang PlaceInfo.MountFile怎么用?Golang PlaceInfo.MountFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/snapcore/snapd/snap.PlaceInfo
的用法示例。
在下文中一共展示了PlaceInfo.MountFile方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RemoveSnapFiles
// RemoveSnapFiles removes the snap files from the disk after unmounting the snap.
func (b Backend) RemoveSnapFiles(s snap.PlaceInfo, typ snap.Type, meter progress.Meter) error {
mountDir := s.MountDir()
// this also ensures that the mount unit stops
if err := removeMountUnit(mountDir, meter); err != nil {
return err
}
if err := os.RemoveAll(mountDir); err != nil {
return err
}
// try to remove parent dir, failure is ok, means some other
// revisions are still in there
os.Remove(filepath.Dir(mountDir))
// snapPath may either be a file or a (broken) symlink to a dir
snapPath := s.MountFile()
if _, err := os.Lstat(snapPath); err == nil {
// remove the kernel assets (if any)
if typ == snap.TypeKernel {
if err := boot.RemoveKernelAssets(s); err != nil {
return err
}
}
// remove the snap
if err := os.RemoveAll(snapPath); err != nil {
return err
}
}
return nil
}
示例2: RemoveKernelAssets
// RemoveKernelAssets removes the unpacked kernel/initrd for the given
// kernel snap.
func RemoveKernelAssets(s snap.PlaceInfo) error {
bootloader, err := partition.FindBootloader()
if err != nil {
return fmt.Errorf("no not remove kernel assets: %s", err)
}
// remove the kernel blob
blobName := filepath.Base(s.MountFile())
dstDir := filepath.Join(bootloader.Dir(), blobName)
if err := os.RemoveAll(dstDir); err != nil {
return err
}
return nil
}