diff --git a/diskpart/lib/diskpart.lua b/diskpart/lib/diskpart.lua index 9f1b9bf..c7c2d88 100644 --- a/diskpart/lib/diskpart.lua +++ b/diskpart/lib/diskpart.lua @@ -1,3 +1,4 @@ +local component = require "component" local partition = {} local eformat = "c20c4>I4>I4" diff --git a/fdisk/exec/fdisk.lua b/fdisk/exec/fdisk.lua index 4189026..e142887 100644 --- a/fdisk/exec/fdisk.lua +++ b/fdisk/exec/fdisk.lua @@ -1,3 +1,4 @@ +local component = require "component" local tA = {...} local fdisk = {} local addr = component.get(table.remove(tA, 1)) @@ -15,15 +16,18 @@ function fdisk.show() end function fdisk.del(i) local pt = require("diskpart").getPartitions(addr) - table.remove(pt, i) + table.remove(pt, tonumber(i)) + require("diskpart").setPartitions(addr, pt) + fdisk.show() +end +function fdisk.set(id, name, ftype, start, len) + local pt = require("diskpart").getPartitions(addr) + pt[tonumber(id)] = {name, ftype, tonumber(start), tonumber(len)} require("diskpart").setPartitions(addr, pt) fdisk.show() end function fdisk.add(name, ftype, start, len) - local pt = require("diskpart").getPartitions(addr) - pt[#pt+1] = {name, ftype, start, len} - require("diskpart").setPartitions(addr, pt) - fdisk.show() + fdisk.set(#require("diskpart").getPartitions(addr)+1, name, ftype, start, len) end assert(fdisk[cmd], "unknown command")