ZNZNCOOP

FileManager_05v

Aug 3rd, 2014
529
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function createButton()
  2. local stt= 1
  3. term.clear()
  4. term.setCursorPos(x/2-10,y/2)
  5. term.write('Create file or directory ?')
  6. term.setCursorPos(x/2-5,y/2+1)
  7.  
  8.  if stt == 1
  9.           then
  10.  
  11.              term.write('[File] Directory')
  12.  
  13.           end
  14.  
  15.           if stt == 2
  16.           then
  17.  
  18.              term.write(' File [Directory]')
  19.  
  20.           end
  21.   while true do
  22.    event,param1= os.pullEvent()
  23.        term.clear()
  24.        term.setCursorPos(x/2-10,y/2)
  25.       if event == 'key'
  26.       then
  27.           if param1 == 203
  28.             then
  29.            
  30.              stt= stt-1
  31.  
  32.           end
  33.  
  34.           if param1 == 205
  35.             then
  36.              stt= stt+1
  37.           end
  38.  
  39.           if stt >= 2
  40.             then
  41.              stt= 2
  42.           end
  43.            
  44.            if stt <= 1
  45.             then
  46.              stt= 1
  47.           end
  48.         end
  49.  
  50.  
  51.         if param1 == 28
  52.           then
  53.  
  54.              if stt == 1
  55.              then
  56.                 term.clear()
  57.                 term.setCursorPos(x/2-10,y/2)
  58.                 term.write('File name ')
  59.                 local name= read()
  60.                 if name ~= nil
  61.                 then
  62.                
  63.                    shell.run('edit',name)
  64.                    break
  65.  
  66.                 end
  67.              end
  68.              if stt == 2
  69.             then
  70.  
  71.               term.clear()
  72.                 term.setCursorPos(x/2-10,y/2)
  73.                 term.write('Directory name ')
  74.                 local name= read()
  75.                 if name ~= nil
  76.                 then
  77.                
  78.                    if steps == 1 and fs.exists(path1..'/'..name) == false
  79.                     then
  80.                    
  81.                        fs.makeDir(path1..'/'..name)
  82.                        break
  83.                     end
  84.                     if steps == 2 and fs.exists(path2..'/'..name) == false
  85.                     then
  86.  
  87.                        fs.makeDir(path2..'/'..name)
  88.                        break
  89.                     end
  90.  
  91.                 end
  92.  
  93.             end
  94.  
  95.           end
  96.  
  97.         term.write('Create file or directory ?')
  98.         term.setCursorPos(x/2-5,y/2+1)
  99.         if stt == 1
  100.           then
  101.  
  102.              term.write('[File] Directory')
  103.  
  104.           end
  105.  
  106.           if stt == 2
  107.           then
  108.  
  109.              term.write(' File [Directory]')
  110.  
  111.           end
  112.  
  113.       end
  114. end
  115.  
  116.  
  117. function deleteButton(number)
  118.  
  119.    term.clear()
  120.    term.setCursorPos(x/2-5,y/2)
  121.    st= 2
  122.    while true do
  123.      
  124.    
  125. term.setCursorPos(x/2-15,y/2)
  126.     if number == 1
  127.           then
  128.            
  129.              term.write('You really delete file '..fileList1[step1]..'?')
  130.           end
  131.  
  132.           if number == 2
  133.           then
  134.              term.write('You really delete file ',fileList2[step2]..'?')
  135.           end
  136.  
  137.           term.setCursorPos(x/2-5,y/2+1)
  138.  
  139.           if st == 1
  140.             then
  141.             term.write('[Yes] No')
  142.           end
  143.           if st == 2
  144.             then
  145.             term.write(' Yes [No]')
  146.           end
  147.  
  148.  
  149.       event,param1= os.pullEvent()
  150.        term.clear()
  151.        term.setCursorPos(x/2-10,y/2)
  152.       if event == 'key'
  153.         then
  154.            if param1 == 203
  155.             then
  156.            
  157.              st= st-1
  158.  
  159.           end
  160.  
  161.           if param1 == 205
  162.             then
  163.              st= st+1
  164.           end
  165.  
  166.           if st >= 2
  167.             then
  168.              st= 2
  169.           end
  170.            
  171.            if st <= 1
  172.             then
  173.              st= 1
  174.           end
  175.         end
  176.  
  177.         if param1 == 28 and st == 1
  178.           then
  179.              if number == 1
  180.               then
  181.  
  182.                  fs.delete(path1..'/'..fileList1[step1])
  183.                  break
  184.  
  185.               end
  186.               if number == 2
  187.               then
  188.  
  189.                  fs.delete(path1..'/'..fileList1[step2])
  190.                  break
  191.               end
  192.  
  193.           end
  194.  
  195.           if param1 == 28 and st == 2
  196.             then
  197.  
  198.                break
  199.  
  200.             end
  201.        
  202.           term.setCursorPos(x/2-5,y/2+1)
  203.  
  204.           if st == 1
  205.             then
  206.             term.write('[Yes] No')
  207.           end
  208.           if st == 2
  209.             then
  210.             term.write(' Yes [No]')
  211.           end
  212.    end
  213. end
  214.  
  215.  
  216. function last_path(line)
  217. lines= {}
  218. for i=1,#line do
  219.  
  220.    lines[i]= string.sub(line,i,i)
  221. end
  222.  
  223.    for i=#line,1,-1 do
  224.    
  225.       if lines[i] == '/'
  226.         then
  227.          count= #line-i
  228.          break
  229.       end
  230.  
  231.    end
  232.    finish= ''
  233.    finish= string.sub(line,1,#line-count-1)
  234.    return finish
  235. end
  236.  
  237.  
  238. x,y= term.getSize()
  239.  
  240. function drawBackGround(color)
  241.    
  242.  
  243.   if steps == 1
  244.   then
  245.      for j=1,y do
  246.  
  247.         for a=1,x/2 do
  248.  
  249.            paintutils.drawPixel(a,j,256)
  250.  
  251.         end
  252.  
  253.      end
  254.  
  255.      for j=1,y do
  256.  
  257.         for a=x/2,x+1 do
  258.  
  259.            paintutils.drawPixel(a,j,128)
  260.  
  261.         end
  262.  
  263.      end
  264.   end
  265.  
  266.   if steps == 2
  267.   then
  268.      for j=1,y do
  269.  
  270.         for a=1,x/2 do
  271.  
  272.            paintutils.drawPixel(a,j,128)
  273.  
  274.         end
  275.  
  276.      end
  277.  
  278.      for j=1,y do
  279.  
  280.         for a=x/2,x+1 do
  281.  
  282.            paintutils.drawPixel(a,j,256)
  283.  
  284.         end
  285.  
  286.      end
  287.   end
  288.    paintutils.drawPixel(x,y,1)
  289.  
  290. end
  291.  
  292. function draw()
  293.  
  294. drawBackGround(128)
  295. paintutils.drawLine(x/2,2,x/2,y,2048)
  296.  
  297. term.setCursorPos(1,1)
  298. term.write(' F1 edit,   F2 delete,  F3 run F4 copy <- backspace')
  299. term.setCursorPos(1,2)
  300.  
  301. l1,l2= 1,y-2
  302. ll1,ll2= 1,y-2
  303.  
  304. if step1 > l2 --and steps == 1
  305.     then
  306.     l1= l2+1
  307.     l2= l2+y
  308. end
  309. if step1 < l1 --and steps == 1
  310.     then
  311.     l2= l1
  312.     l1= l1-y
  313. end
  314.  
  315.  
  316. if step2 > ll2 --and steps == 2
  317.     then
  318.     ll1= ll2+1
  319.     ll2= ll2+y
  320. end
  321. if step2 < ll1 --and steps == 2
  322.     then
  323.     ll2= ll1
  324.     ll1= ll1-y
  325. end
  326. if steps == 1
  327.   then
  328.     paintutils.drawPixel(x,y,256)
  329. else
  330.   paintutils.drawPixel(x,y,128)
  331. end
  332. term.setCursorPos(6,2)
  333. term.write('..'..path1)
  334. term.setCursorPos(6,3)
  335. countl= 2
  336.  
  337.  
  338.  
  339. for i=l1,l2 do
  340.  
  341.          if fileList1[i] ~= nil
  342.             then
  343.                if step1 == i --and steps == 1
  344.                then
  345.                if fs.isDir(path1..'/'..fileList1[i]) == true
  346.                 then
  347.                  term.setTextColor(2)
  348.               end
  349.                   term.write('['..fileList1[i]..']')
  350.                    term.setTextColor(1)
  351.            else
  352.              if fs.isDir(path1..'/'..fileList1[i]) == true
  353.                 then
  354.                  term.setTextColor(2)
  355.               end
  356.                   term.write(' '..fileList1[i])
  357.                   term.setTextColor(1)
  358.            end
  359.                 term.setCursorPos(6,countl+2)
  360.                 countl= countl+1    
  361.                
  362.             end
  363.             if fileList1[i+1] == nil
  364.                 then
  365.                 break
  366.             end
  367.     end
  368.   if steps == 2
  369.   then
  370.     paintutils.drawPixel(x,y,256)
  371. else
  372.   paintutils.drawPixel(x,y,128)
  373. end
  374. term.setCursorPos(x/2+7,2)
  375. term.write('..'..path2)
  376. term.setCursorPos(x/2+7,3)
  377. countll= 2
  378.  
  379. for i=ll1,ll2 do
  380.        if fileList2[i] ~= nil
  381.          then
  382.             if step2 == i --and steps == 2
  383.                then
  384.                 if fs.isDir(path2..'/'..fileList2[i]) == true
  385.                 then
  386.                  term.setTextColor(2)
  387.               end
  388.                   term.write('['..fileList2[i]..']')
  389.                    term.setTextColor(1)
  390.            else
  391.              if fs.isDir(path2..'/'..fileList2[i]) == true
  392.                 then
  393.                  term.setTextColor(2)
  394.               end
  395.                   term.write(' '..fileList2[i])
  396.                   term.setTextColor(1)
  397.            end
  398.             term.setCursorPos(x/2+7,countll+2)
  399.             countll= countll+1    
  400.         end
  401.          if fileList2[i+1] == nil
  402.                 then
  403.                 break
  404.             end  
  405.  
  406.     end
  407. end
  408.  
  409.  
  410. step = 1
  411. steps= 1
  412. path1= ''
  413. path2= ''
  414. step1= 1
  415. step2= 1
  416. function main()
  417. fileList1= {}
  418. fileList2= {}
  419.    while true do
  420.       fileList1= fs.list(path1)
  421.       fileList2= fs.list(path2)
  422.       draw()
  423.       --print(l1,' ',l2,' ',step1)
  424.       event,param1,param2= os.pullEvent()
  425.       if event == 'key'
  426.         then
  427.          if param1 == 208
  428.             then
  429.                if steps == 1
  430.               then
  431.                step1= step1+1
  432.             end
  433.             if steps == 2
  434.               then
  435.               step2= step2+1
  436.             end
  437.             end
  438.             if param1 == 200
  439.                 then
  440.                    if steps == 1
  441.                 then
  442.                step1= step1-1
  443.                 end
  444.             if steps == 2
  445.               then
  446.               step2= step2-1
  447.               end
  448.             end
  449.             if step <=1
  450.                 then
  451.                 step= 1
  452.             end
  453.            
  454.             if param1 == 203
  455.                 then
  456.                 steps= steps-1
  457.             end
  458.            
  459.             if param1 == 205
  460.                 then
  461.                 steps= steps+1
  462.             end
  463.  
  464.             if param1 == 28
  465.                 then
  466.                    if steps == 1
  467.                     then
  468.                     if fs.isDir(path1..'/'..fileList1[step1]) == true
  469.                      then
  470.                      path1= path1..'/'..fileList1[step1]
  471.                      fileList1= fs.list(path1)
  472.                       step1= 1
  473.                   end
  474.                    end
  475.                    if steps == 2
  476.                     then
  477.                     if fs.isDir(path2..'/'..fileList2[step2]) == true
  478.                      then
  479.                      path2= path2..'/'..fileList2[step2]
  480.                      fileList2= fs.list(path2)
  481.                       step2= 1
  482.                   end
  483.                    end
  484.                 end
  485.              
  486.                  if param1 == 14
  487.                  then
  488.                  if steps == 1
  489.                   then
  490.                   path1= last_path(path1)
  491.                   fileList1= fs.list(path1)
  492.                 end
  493.                  if steps == 2
  494.                   then
  495.                   path2= last_path(path2)
  496.                   fileList2= fs.list(path2)
  497.                 end
  498.             end
  499.  
  500.                     if param1 == 59
  501.                 then
  502.                 if steps == 1
  503.                   then
  504.  
  505.                     shell.run('edit',fileList1[step1])
  506.  
  507.                 end
  508.                   if steps == 2
  509.                   then
  510.  
  511.                     shell.run('edit',fileList2[step2])
  512.  
  513.                 end
  514.               end
  515.  
  516.  
  517.                     if param1 == 60
  518.                 then
  519.                 if steps == 1
  520.                   then
  521.  
  522.                     deleteButton(1)
  523.  
  524.                 end
  525.                   if steps == 2
  526.                   then
  527.  
  528.                     deleteButton(2)
  529.  
  530.                 end
  531.               end
  532.  
  533.               if param1 == 61
  534.               then
  535.              
  536.                  if steps == 1
  537.                   then
  538.                      term.clear()
  539.                      term.setCursorPos(1,1)
  540.                      shell.run(fileList1[step1])
  541.                      term.clear()
  542.                      term.setCursorPos(1,1)
  543.  
  544.                   end
  545.  
  546.  
  547.                  if steps == 2
  548.                   then
  549.                      term.clear()
  550.                      term.setCursorPos(1,1)
  551.                      shell.run(fileList2[step2])
  552.                      term.clear()
  553.                      term.setCursorPos(1,1)
  554.  
  555.                   end
  556.  
  557.               end
  558.  
  559.  
  560.               if param1 == 62
  561.               then
  562.              
  563.                  if steps == 1
  564.                   then
  565.                      
  566.                      fs.copy(path1..'/'..fileList1[step1],path2..'/'..fileList2[step1])
  567.  
  568.                   end
  569.  
  570.               end
  571.  
  572.               if param1 == 63
  573.                 then
  574.  
  575.                    createButton()
  576.  
  577.                 end
  578.  
  579.          
  580.             if steps<=1
  581.                 then
  582.                 steps= 1
  583.             end
  584.  
  585.             if steps>=2
  586.                 then
  587.                 steps= 2
  588.             end
  589.  
  590.             if step1 >= #fileList1-- and steps == 1
  591.                 then
  592.                     step1= #fileList1
  593.                 end
  594.             if step1 <= 1-- and steps == 1
  595.             then
  596.                 step1= 1
  597.             end
  598.                 if step2 >= #fileList2 --and steps == 2
  599.                     then
  600.                     step2 = #fileList2
  601.                 end
  602.             if step2 <= 1-- and steps == 1
  603.             then
  604.                 step2= 1
  605.             end
  606.       end
  607.  
  608.    end
  609.  
  610. end
  611. main()
  612. paintutils.drawPixel(x,y,32768)
RAW Paste Data