Jump to content

python/yum idea "SOLVED"


jlc
 Share

Recommended Posts

Cleaned up and fixed some missing things:

 

#!/usr/bin/python

import os
import sys
import locale
import time # test purposes only

import yum
import yum.Errors as Errors

repos = {}

def use_repository():
      while True:
              var = raw_input("Enable freshrpms? y/n: ")
              if var in ('y', 'ye', 'yes'):
                      repos['fresh'] = "--enablerepo=freshrpms"
                      return False
              if var in ('n', 'no', 'nop', 'nope'):
                      repos['fresh'] = "--disablerepo=freshrpms"
                      return False

use_repository()

print repos["fresh"]

def use_repository():
      while True:
              var1 = raw_input("Enable fedora-us? y/n: ")
              if var1 in ('y', 'ye', 'yes'):
                      repos['fedoraus'] = "--enablerepo=fedora-us"
                      return False
              if var1 in ('n', 'no', 'nop', 'nope'):
                      repos['fedoraus'] = "--disablerepo=fedora-us"
                      return False

use_repository()

print repos["fedoraus"]

def use_repository():
      while True:
              var2 = raw_input("Enable livna-stable? y/n: ")
              if var2 in ('y', 'ye', 'yes'):
                      repos['livnastable'] = "--enablerepo=livna-stable"
                      return False
              if var2 in ('n', 'no', 'nop', 'nope'):
                      repos['livnastable'] = "--disablerepo=livna-stable"
                      return False

use_repository()

print repos["livnastable"]

def use_repository():
      while True:
              var3 = raw_input("Enable livna-testing? y/n: ")
              if var3 in ('y', 'ye', 'yes'):
                      repos['livnatesting'] = "--enablerepo=livna-testing"
                      return False
       if var3 in ('n', 'no', 'nope'):
                      repos['livnatesting'] = "--disablerepo=livna-testing"
                      return False

use_repository()

print repos["livnatesting"]

def use_repository():
      while True:
              var4 = raw_input("Enable livna-unstable? y/n: ")
              if var4 in ('y', 'ye', 'yes'):
                      repos['livnaunstable'] = "--enablerepo=livna-unstable"
                      return False
              if var4 in ('n', 'no', 'nop', 'nope'):
                      repos['livnaunstable'] = "--disablerepo=livna-unstable" 
                      return False

use_repository()

print repos["livnaunstable"]

def use_repository():
      while True:
              var5 = raw_input("Enable dag? y/n: ")
              if var5 in ('y', 'ye', 'yes'):
                      repos['dag'] = "--enablerepo=dag"
                      return False
              if var5 in ('n', 'no', 'nop', 'nope'):
                      repos['dag'] = "--disablerepo=dag"
                      return False

use_repository()

print repos["dag"]

def use_repository():
      while True:
              var6 = raw_input("Enable dries? y/n: ")
              if var6 in ('y', 'ye', 'yes'):
                      repos['dries'] = "--enablerepo=dries"
                      return False
              if var6 in ('n', 'no', 'nop', 'nope'):
                      repos['dries'] = "--disablerepo=dries"
                      return False

use_repository()

print repos["dries"]

def use_repository():
      while True:
              var7 = raw_input("Enable newsrpms? y/n: ")
              if var7 in ('y', 'ye', 'yes'):
                      repos['newsrpms'] = "--enablerepo=newsrpms"
                      return False
              if var7 in ('n', 'no', 'nop', 'nope'):
                      repos['newsrpms'] = "--disablerepo=newsrpms"
                      return False

use_repository()

print repos["newsrpms"]

def use_repository():
      while True:
              var8 = raw_input("Enable atrpms-good? y/n: ")
              if var8 in ('y', 'ye', 'yes'):
                      repos['atrpmsgood'] = "--enablerepo=atrpms-good"
                      return False
              if var8 in ('n', 'no', 'nop', 'nope'):
                      repos['atrpmsgood'] = "--disablerepo=atrpms-good"
                      return False

use_repository()

print repos["atrpmsgood"]

def use_repository():
      while True:
              var9 = raw_input("Enable atrpms-stable? y/n: ")
              if var9 in ('y', 'ye', 'yes'):
                      repos['atrpmsstable'] = "--enablerepo=atrpms-stable"
                      return False
              if var9 in ('n', 'no', 'nop', 'nope'):
                      repos['atrpmsstable'] = "--disablerepo=atrpms-stable"
                      return False

use_repository()


print repos["atrpmsstable"]

def use_repository():
      while True:
              var10 = raw_input("Enable atrpms-testing? y/n: ")
              if var10 in ('y', 'ye', 'yes'):
                      repos['atrpmstesting'] = "--enablerepo=atrpms-testing"
                      return False
              if var10 in ('n', 'no', 'nop', 'nope'):
                      repos['atrpmstesting'] = "--disablerepo=atrpms-testing"
                      return False

use_repository()

print repos["atrpmstesting"]

def use_repository():
      while True:
              var11 = raw_input("Enable atrpms-bleeding? y/n: ")
              if var11 in ('y', 'ye', 'yes'):
                     repos['atrpmsbleeding'] = "--enablerepo=atrpms-bleeding" 
                     return False
              if var11 in ('n', 'no', 'nop', 'nope'):
                    repos['atrpmsbleeding'] = "--disablerepo=atrpms-bleeding"
                    return False

use_repository()

print repos["atrpmsbleeding"]

Edited by Steve Scrimpshire
Link to comment
Share on other sites

  • Replies 33
  • Created
  • Last Reply

Top Posters In This Topic

Latest

 

#!/usr/bin/python

import os
import sys
# if not root...kick out
if not os.geteuid()==0:
   sys.exit("\nOnly root can run this script\n")

import locale
import time # test purposes only

import yum
import yum.Errors as Errors

repos = {}

def use_repository():
while True:
 var = raw_input("Enable freshrpms? y/n: ")
 if var in ('y', 'ye', 'yes'): 
	 repos['freshrpms'] = "--enablerepo=freshrpms" 
	 return False
 if var in ('n', 'no', 'nop', 'nope'): 
	 repos['freshrpms'] = "--disablerepo=freshrpms" 
	 return False

use_repository()

print repos["freshrpms"]

def use_repository():
       while True:
               var1 = raw_input("Enable fedora-us? y/n: ")
               if var1 in ('y', 'ye', 'yes'):
                       repos['fedora-us'] = "--enablerepo=fedora-us"
                       return False
               if var1 in ('n', 'no', 'nop', 'nope'):
                       repos['fedora-us'] = "--disablerepo=fedora-us"
                       return False

use_repository()

print repos["fedora-us"]

def use_repository():
       while True:
               var2 = raw_input("Enable livna-stable? y/n: ")
               if var2 in ('y', 'ye', 'yes'):
                       repos['livna-stable'] = "--enablerepo=livna-stable"
                       return False
               if var2 in ('n', 'no', 'nop', 'nope'):
                       repos['livna-stable'] = "--disablerepo=livna-stable"
                       return False

use_repository()

print repos["livna-stable"]

def use_repository():
       while True:
               var3 = raw_input("Enable livna-testing? y/n: ")
               if var3 in ('y', 'ye', 'yes'):
                       repos['livna-testing'] = "--enablerepo=livna-testing"
                       return False
               if var3 in ('n', 'no', 'nop', 'nope'):
                       repos['livna-testing'] = "--disablerepo=testing"
                       return False

use_repository()

print repos["livna-testing"]

def use_repository():
       while True:
               var4 = raw_input("Enable livna-unstable? y/n: ")
               if var4 in ('y', 'ye', 'yes'):
                       repos['livna-unstable'] = "--enablerepo=livna-unstable"
                       return False
               if var4 in ('n', 'no', 'nop', 'nope'):
                       repos['livna-unstable'] = "--disablerepo=livna-unstable"
                       return False

use_repository()

print repos["livna-unstable"]

def use_repository():
       while True:
               var5 = raw_input("Enable dag? y/n: ")
               if var5 in ('y', 'ye', 'yes'):
                       repos['dag'] = "--enablerepo=dag"
                       return False
               if var5 in ('n', 'no', 'nop', 'nope'):
                       repos['dag'] = "--disablerepo=dag"
                       return False

use_repository()

print repos["dag"]

def use_repository():
       while True:
               var6 = raw_input("Enable dries? y/n: ")
               if var6 in ('y', 'ye', 'yes'):
                       repos['dries'] = "--enablerepo=dries"
                       return False
               if var6 in ('n', 'no', 'nop', 'nope'):
                       repos['dries'] = "--disablerepo=dries"
                       return False

use_repository()

print repos["dries"]

def use_repository():
       while True:
               var7 = raw_input("Enable newsrpms? y/n: ")
               if var7 in ('y', 'ye', 'yes'):
                       repos['newsrpms'] = "--enablerepo=newsrpms"
                       return False
               if var7 in ('n', 'no', 'nop', 'nope'):
                       repos['newsrpms'] = "--disablerepo=newsrpms"
                       return False

use_repository()

print repos["newsrpms"]

def use_repository():
       while True:
               var8 = raw_input("Enable atrpms-good? y/n: ")
               if var8 in ('y', 'ye', 'yes'):
                       repos['atrpms-good'] = "--enablerepo=atrpms-good"
                       return False
               if var8 in ('n', 'no', 'nop', 'nope'):
                       repos['atrpms-good'] = "--disablerepo=atrpms-good"
                       return False

use_repository()

print repos["atrpms-good"]

def use_repository():
       while True:
               var9 = raw_input("Enable atrpms-stable? y/n: ")
               if var9 in ('y', 'ye', 'yes'):
                       repos['atrpms-stable'] = "--enablerepo=atrpms-stable"
                       return False
               if var9 in ('n', 'no', 'nop', 'nope'):
                       repos['atrpms-stable'] = "--disablerepo=atrpms-stable"
                       return False

use_repository()

print repos["atrpms-stable"]

def use_repository():
       while True:
               var10 = raw_input("Enable atrpms-testing? y/n: ")
               if var10 in ('y', 'ye', 'yes'):
                       repos['atrpms-testing'] = "--enablerepo=atrpms-testing"
                       return False
               if var10 in ('n', 'no', 'nop', 'nope'):
                       repos['atrpms-testing'] = "--disablerepo=atrpms-testing"
                       return False

use_repository()

print repos["atrpms-testing"]

def use_repository():
       while True:
               var11 = raw_input("Enable atrpms-bleeding? y/n: ")
               if var11 in ('y', 'ye', 'yes'):
                      repos['atrpms-bleeding'] = "--enablerepo=atrpms-bleeding"
                      return False
               if var11 in ('n', 'no', 'nop', 'nope'):
                     repos['atrpms-bleeding'] = "--disablerepo=atrpms-bleeding"
                     return False

use_repository()

print repos["atrpms-bleeding"]

su_do={}

def use_su():
while True:
 var12 = raw_input("Use su or sudo? su/sudo: ")
 if var12 in ('su'):
	 su_do['enable']="su"
	 return False
 if var12 in ('sudo'):
	 su_do['enable']="sudo"
	 return False

use_su()

print su_do['enable']

var13 = raw_input("What pkg do you want to install? ")
if su_do['enable'] is "su":
os.system('su')
os.system('yum "' + 
repos["freshrpms"] + 
repos["fedora-us"] + repos["livna-stable"] + 
repos["livna-testing"] + repos["livna-unstable"] + 
repos["dag"] + repos["dries"] + repos["newsrpms"] + 
repos["atrpms-good"] + repos["atrpms-stable"] + 
repos["atrpms-testing"] + repos["atrpms-bleeding"] + '"install ' + 'var13') 

if su_do['enable'] is "sudo":
os.system('sudo yum "' + 
repos["freshrpms"] + 
repos["fedora-us"] + repos["livna-stable"] + 
repos["livna-testing"] + repos["livna-unstable"] + 
repos["dag"] + repos["dries"] + repos["newsrpms"] + 
repos["atrpms-good"] + repos["atrpms-stable"] + 
repos["atrpms-testing"] + repos["atrpms-bleeding"] + '"install "var13"')

Edited by cybrjackle
Link to comment
Share on other sites

Try replacing everything after:

var13 = raw_input("What pkg do you want to install? ")

 

with:

fullcmd = "yum " + repos["fresh"] + " " + repos["fedoraus"] + " "  + repos["livnastable"] + " " + repos["livnatesting"] + " " + repos["livnaunstable"] + " " + repos["dag"] + " " + repos["dries"] + " " + repos["newsrpms"] + " " + repos["atrpmsgood"] + " " + repos["atrpmsstable"] + " " + repos["atrpmstesting"] + " " + repos["atrpmsbleeding"] + " install " + var13

sudocmd =  "sudo yum " + repos["fresh"] + " " + repos["fedoraus"] + " "  + repos["livnastable"] + " " + repos["livnatesting"] + " " + repos["livnaunstable"] + " " + repos["dag"] + " " + repos["dries"] + " " + repos["newsrpms"] + " " + repos["atrpmsgood"] + " " + repos["atrpmsstable"] + " " + repos["atrpmstesting"] + " " + repos["atrpmsbleeding"] + " install " + var13

if su_do['enable'] is "su":
  os.system('su')
  os.system('"fullcmd"') 
  
if su_do['enable'] is "sudo":
     os.system('"sudocmd"')

Link to comment
Share on other sites

Thanks to Steve, we have a working script and I learned a thing or more about python! ;-)

 

#!/usr/bin/python

import os
import sys
# if not root...kick out
if not os.geteuid()==0:
   sys.exit("\nOnly root can run this script\n")

import locale
import time # test purposes only

import yum
import yum.Errors as Errors

repos = {}

def use_repository():
while True:
 var = raw_input("Enable freshrpms? y/n: ")
 if var in ('y', 'ye', 'yes'): 
	 repos['freshrpms'] = "--enablerepo=freshrpms" 
	 return False
 if var in ('n', 'no', 'nop', 'nope'): 
	 repos['freshrpms'] = "--disablerepo=freshrpms" 
	 return False

use_repository()

print repos["freshrpms"]

def use_repository():
       while True:
               var1 = raw_input("Enable fedora-us? y/n: ")
               if var1 in ('y', 'ye', 'yes'):
                       repos['fedora-us'] = "--enablerepo=fedora-us"
                       return False
               if var1 in ('n', 'no', 'nop', 'nope'):
                       repos['fedora-us'] = "--disablerepo=fedora-us"
                       return False

use_repository()

print repos["fedora-us"]

def use_repository():
       while True:
               var2 = raw_input("Enable livna-stable? y/n: ")
               if var2 in ('y', 'ye', 'yes'):
                       repos['livna-stable'] = "--enablerepo=livna-stable"
                       return False
               if var2 in ('n', 'no', 'nop', 'nope'):
                       repos['livna-stable'] = "--disablerepo=livna-stable"
                       return False

use_repository()

print repos["livna-stable"]

def use_repository():
       while True:
               var3 = raw_input("Enable livna-testing? y/n: ")
               if var3 in ('y', 'ye', 'yes'):
                       repos['livna-testing'] = "--enablerepo=livna-testing"
                       return False
               if var3 in ('n', 'no', 'nop', 'nope'):
                       repos['livna-testing'] = "--disablerepo=livna-testing"
                       return False

use_repository()

print repos["livna-testing"]

def use_repository():
       while True:
               var4 = raw_input("Enable livna-unstable? y/n: ")
               if var4 in ('y', 'ye', 'yes'):
                       repos['livna-unstable'] = "--enablerepo=livna-unstable"
                       return False
               if var4 in ('n', 'no', 'nop', 'nope'):
                       repos['livna-unstable'] = "--disablerepo=livna-unstable"
                       return False

use_repository()

print repos["livna-unstable"]

def use_repository():
       while True:
               var5 = raw_input("Enable dag? y/n: ")
               if var5 in ('y', 'ye', 'yes'):
                       repos['dag'] = "--enablerepo=dag"
                       return False
               if var5 in ('n', 'no', 'nop', 'nope'):
                       repos['dag'] = "--disablerepo=dag"
                       return False

use_repository()

print repos["dag"]

def use_repository():
       while True:
               var6 = raw_input("Enable dries? y/n: ")
               if var6 in ('y', 'ye', 'yes'):
                       repos['dries'] = "--enablerepo=dries"
                       return False
               if var6 in ('n', 'no', 'nop', 'nope'):
                       repos['dries'] = "--disablerepo=dries"
                       return False

use_repository()

print repos["dries"]

def use_repository():
       while True:
               var7 = raw_input("Enable newsrpms? y/n: ")
               if var7 in ('y', 'ye', 'yes'):
                       repos['newsrpms'] = "--enablerepo=newsrpms"
                       return False
               if var7 in ('n', 'no', 'nop', 'nope'):
                       repos['newsrpms'] = "--disablerepo=newsrpms"
                       return False

use_repository()

print repos["newsrpms"]

def use_repository():
       while True:
               var8 = raw_input("Enable atrpms-good? y/n: ")
               if var8 in ('y', 'ye', 'yes'):
                       repos['atrpms-good'] = "--enablerepo=atrpms-good"
                       return False
               if var8 in ('n', 'no', 'nop', 'nope'):
                       repos['atrpms-good'] = "--disablerepo=atrpms-good"
                       return False

use_repository()

print repos["atrpms-good"]

def use_repository():
       while True:
               var9 = raw_input("Enable atrpms-stable? y/n: ")
               if var9 in ('y', 'ye', 'yes'):
                       repos['atrpms-stable'] = "--enablerepo=atrpms-stable"
                       return False
               if var9 in ('n', 'no', 'nop', 'nope'):
                       repos['atrpms-stable'] = "--disablerepo=atrpms-stable"
                       return False

use_repository()

print repos["atrpms-stable"]

def use_repository():
       while True:
               var10 = raw_input("Enable atrpms-testing? y/n: ")
               if var10 in ('y', 'ye', 'yes'):
                       repos['atrpms-testing'] = "--enablerepo=atrpms-testing"
                       return False
               if var10 in ('n', 'no', 'nop', 'nope'):
                       repos['atrpms-testing'] = "--disablerepo=atrpms-testing"
                       return False

use_repository()

print repos["atrpms-testing"]

def use_repository():
       while True:
               var11 = raw_input("Enable atrpms-bleeding? y/n: ")
               if var11 in ('y', 'ye', 'yes'):
                      repos['atrpms-bleeding'] = "--enablerepo=atrpms-bleeding"
                      return False
               if var11 in ('n', 'no', 'nop', 'nope'):
                     repos['atrpms-bleeding'] = "--disablerepo=atrpms-bleeding"
                     return False

use_repository()

print repos["atrpms-bleeding"]

su_do={}

def use_su():
while True:
 var12 = raw_input("Use su or sudo? su/sudo: ")
 if var12 in ('su'):
	 su_do['enable']="su"
	 return False
 if var12 in ('sudo'):
	 su_do['enable']="sudo"
	 return False

use_su()

print su_do['enable']

fullcmd = {}
sudocmd = {}

var13 = raw_input("What pkg do you want to install? ")
fullcmd['test'] = "yum " + repos["freshrpms"] + " " + repos["fedora-us"] + " "  + repos["livna-stable"] + " " + repos["livna-testing"] + " " + repos["livna-unstable"] + " " + repos["dag"] + " " + repos["dries"] + " " + repos["newsrpms"] + " " + repos["atrpms-good"] + " " + repos["atrpms-stable"] + " " + repos["atrpms-testing"] + " " + repos["atrpms-bleeding"] + " install " + var13

sudocmd['test'] =  "sudo yum " + repos["freshrpms"] + " " + repos["fedora-us"] + " "  + repos["livna-stable"] + " " + repos["livna-testing"] + " " + repos["livna-unstable"] + " " + repos["dag"] + " " + repos["dries"] + " " + repos["newsrpms"] + " " + repos["atrpms-good"] + " " + repos["atrpms-stable"] + " " + repos["atrpms-testing"] + " " + repos["atrpms-bleeding"] + " install " + var13

if su_do['enable'] is "su":
 os.system('su')
 os.system(fullcmd['test'])

if su_do['enable'] is "sudo":
    os.system(sudocmd['test'])

 

$ rpm -qa |grep unrar

 

$ sudo ./yum-repos.py
Password:
Enable freshrpms? y/n: y
--enablerepo=freshrpms
Enable fedora-us? y/n: n
--disablerepo=fedora-us
Enable livna-stable? y/n: n
--disablerepo=livna-stable
Enable livna-testing? y/n: n
--disablerepo=livna-testing
Enable livna-unstable? y/n: n
--disablerepo=livna-unstable
Enable dag? y/n: n
--disablerepo=dag
Enable dries? y/n: n
--disablerepo=dries
Enable newsrpms? y/n: n
--disablerepo=newsrpms
Enable atrpms-good? y/n: n
--disablerepo=atrpms-good
Enable atrpms-stable? y/n: n
--disablerepo=atrpms-stable
Enable atrpms-testing? y/n: n
--disablerepo=atrpms-testing
Enable atrpms-bleeding? y/n: n
--disablerepo=atrpms-bleeding
Use su or sudo? su/sudo:sudo
sudo
What pkg do you want to install? unrar

 

Setting up Install Process
Setting up Repo:  updates-released
repomd.xml                100% |=========================|  951 B    00:00
Setting up Repo:  base
repomd.xml                100% |=========================| 1.1 kB    00:00
Setting up Repo:  freshrpms
repomd.xml                100% |=========================|  843 B    00:00
Reading repository metadata in from local files
updates-re: ################################################## 169/169
base      : ################################################## 2622/2622
freshrpms : ################################################## 422/422
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for unrar to pack into transaction set.
unrar-3.4.3-1.1.fc3.fr.i3 100% |=========================| 3.5 kB    00:01
---> Package unrar.i386 0:3.4.3-1.1.fc3.fr set to be installed
--> Running transaction check

Dependencies Resolved
Transaction Listing:
 Install: unrar.i386 0:3.4.3-1.1.fc3.fr
Is this ok [y/N]:

Is this ok [y/N]: y
Downloading Packages:
unrar-3.4.3-1.1.fc3.fr.i3 100% |=========================|  86 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: unrar 100 % done 1/1

Installed: unrar.i386 0:3.4.3-1.1.fc3.fr
Complete!

 

:drum::headbang:

 

SWEET!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

 

thx so much Ohms!

Link to comment
Share on other sites

Awww mann!!! I wrote one too!!

 

Heres mine :)

 

Name it 'yumrepo' stick it somewhere in your path (/usr/bin is all good), chmod +x it, then run "yumrepo install bob" or put any other yum commands after it. All commands after 'yumrepo' except -l, --list-repos, -h, --help are passed to yum itself.

 

It gets a list of repos from /etc/yum.repos.d/ so the repos are not hard coded into it, meaning the script doesnt have to be edited if you add/remove repos.

 

You can also do 'yumrepo -l' to list the available repos.

 

This command, if run by a user, will ask for root password, then start itself up as root using su -c, perform it's command and you will be returned to a user command line

 

Hope you like it..

 

Either way whether you use it or not, i improved my python skills substantially, so it was all worth it :D It's only 69 lines too :P

 

To make life simpler, you can download it here: http://aslan.no-ip.com/~iphitus/downloads/programs/yumrepo

#! /usr/bin/env python

##  Yum Repository selection frontend
##  by iphitus  --  iphitus@gmail.com 

from sys import argv,exit
from os import listdir,getuid,execvp,system,wait
from optparse import OptionParser   

## Change this if this file is not named program_name
program_name = "yumrepo"
   
def main():

 arguments = argv[1:]
 
 ## Load list of repositories
 repolist = listdir("/etc/yum.repos.d")
 for f in repolist:
   if f[-5:] != ".repo":
     repolist.remove(f)

 ## Load and parse command line options
 parser = OptionParser()
 parser.add_option("-l", "--list-repos", 
           action="store_true", dest="listrepos", help="List available repositories.")
 (options,args) = parser.parse_args()

 ## Check to see if root, if not, su then execute command again
 if getuid() != 0:
   getroot = raw_input("This program requires root access, run as root? (Y/n)")
   if getroot == "n" or getroot == "N":
     exit()
   else:
     astring = " "
     for a in arguments:
       astring = astring+" "+a
     suargs = ["root","--command="+program_name+astring]
     execvp("su",suargs)

 ## Check command line options
 if options.listrepos:
   print "Available repositories are:"
   for r in repolist:
     print "  ",r[:-5]        
   exit()  
   
 ## Start offering repos 
 yum="yum "
 for f in repolist:      
   response = raw_input("Use repository: " + f[:-5] + "? (Y/n)")
 if response == "y" or response == "Y":
   yum = yum + "--enablerepo=" + f[:-5] + " "
 elif response == "n" or response == "N":
   yum = yum + "--disablerepo=" + f[:-5] + " "
 else:
   yum = yum + "--enablerepo=" + f[:-5] + " "

 ## Add other yum arguments    
 for a in arguments:
   if a[0] != "-" and a != "":
     yum=yum+" " + a

   ## Run Yum
 system(yum)
   
if __name__ == "__main__":

 main()

Link to comment
Share on other sites

$ sudo yumrepo install ifupdown
Use repository: freshrpms? (Y/n)n
Use repository: fedora-devel? (Y/n)n
Use repository: livna-testing? (Y/n)n
Use repository: atrpms-bleeding? (Y/n)n
Use repository: newsrpms? (Y/n)n
Use repository: fedora-us? (Y/n)n
Use repository: fedora? (Y/n)n
Use repository: atrpms-testing? (Y/n)n
Use repository: atrpms-stable? (Y/n)n
Use repository: fedora-updates-testing? (Y/n)n
Use repository: livna-stable? (Y/n)n
Use repository: fedora-updates? (Y/n)n
Use repository: dries? (Y/n)n
Use repository: atrpms-good? (Y/n)n
Use repository: dag? (Y/n)y
Use repository: livna-unstable? (Y/n)n
Setting up Install Process
Setting up Repo:  updates-released
repomd.xml                100% |=========================|  951 B    00:00
Setting up Repo:  fedora-us
http://download.fedora.us/fedora/fedora/3/i386/RPMS.extras/repodata/repomd.xml: [Errno 4] IOError: HTTP Error 404: Not Found
Trying other mirror.
Cannot open/read repomd.xml file for repository: fedora-us
failure: repodata/repomd.xml from fedora-us: [Errno 256] No more mirrors to try.

 

iphitus That error right there means that it is still looking into other repositorys, in this case "fedora-us" which they don't have created yet. Besides it shouldn't even be looking at it since I said "N" it should only be looking in "dag" and the default "Fedora" channels for updates and base packages?

Link to comment
Share on other sites

I think:

if response == "y" or response == "Y":
  yum = yum + "--enablerepo=" + f[:-5] + " "
elif response == "n" or response == "N":
  yum = yum + "--disablerepo=" + f[:-5] + " "
else:
  yum = yum + "--enablerepo=" + f[:-5] + " "

 

should be:

if response is "y" or response is "Y":
  yum = yum + "--enablerepo=" + f[:-5] + " "
elif response is "n" or response is "N":
  yum = yum + "--disablerepo=" + f[:-5] + " "
else:
  yum = yum + "--enablerepo=" + f[:-5] + " "

Link to comment
Share on other sites

Let's see what happens, I don't have ifplugd installed from Dag's repo and I need it since this is my laptop.

 

[$ rpm -qa |grep ifplugd
$

Not here, move on to install

 

$ yumrepo install ifplugd
This program requires root access, run as root? (Y/n)n
$

That works, now, didn't on the last one.

 

$ yumrepo install ifplugd
This program requires root access, run as root? (Y/n)y
Password:
Use repository: freshrpms? (Y/n)n
Use repository: fedora-devel? (Y/n)n
Use repository: livna-testing? (Y/n)n
Use repository: atrpms-bleeding? (Y/n)n
Use repository: newsrpms? (Y/n)n
Use repository: fedora-us? (Y/n)n
Use repository: fedora? (Y/n)n
Use repository: atrpms-testing? (Y/n)n
Use repository: atrpms-stable? (Y/n)n
Use repository: fedora-updates-testing? (Y/n)n
Use repository: livna-stable? (Y/n)n
Use repository: fedora-updates? (Y/n)n
Use repository: dries? (Y/n)n
Use repository: atrpms-good? (Y/n)n
Use repository: dag? (Y/n)y
Use repository: livna-unstable? (Y/n)n
Setting up Install Process
Setting up Repo:  updates-released
repomd.xml                100% |=========================|  951 B    00:00
Setting up Repo:  fedora-us
http://download.fedora.us/fedora/fedora/3/i386/RPMS.extras/repodata/repomd.xml: [Errno 4] IOError: HTTP Error 404: Not Found
Trying other mirror.
Cannot open/read repomd.xml file for repository: fedora-us
failure: repodata/repomd.xml from fedora-us: [Errno 256] No more mirrors to try.[

Link to comment
Share on other sites

Ohms: == and is are equivalent, changing them does nothing.

 

It isnt working because I made an indentation mistake, this:

 

yum="yum "
for f in repolist:      
  response = raw_input("Use repository: " + f[:-5] + "? (Y/n)")
if response == "y" or response == "Y":
  yum = yum + "--enablerepo=" + f[:-5] + " "
elif response == "n" or response == "N":
  yum = yum + "--disablerepo=" + f[:-5] + " "
else:
  yum = yum + "--enablerepo=" + f[:-5] + " "

 

the if clauses within the for, should be indented further.

 

Anyway, i modified it to use execvp instead of system.

 

#! /usr/bin/env python

#  Yum Repository selection frontend
#  by iphitus  --  iphitus@gmail.com 

from sys import argv,exit
from os import listdir,getuid,execvp
from optparse import OptionParser   

## Change this if this file is not named program_name
program_name = "yumrepo"
   
def main():

 arguments = argv[1:]
 
 ## Load list of repositories
 repolist = listdir("/etc/yum.repos.d")
 for f in repolist:
   if f[-5:] != ".repo":
     repolist.remove(f)

 ## Load and parse command line options
 parser = OptionParser()
 parser.add_option("-l", "--list-repos", 
           action="store_true", dest="listrepos", help="List available repositories.")
 (options,args) = parser.parse_args()

 ## Check to see if root, if not, su then execute command again
 if getuid() != 0:
   getroot = raw_input("This program requires root access, run as root? (Y/n)")
   if getroot == "n" or getroot == "N":
     exit()
   else:
     astring = " "
     for a in arguments:
       astring = astring+" "+a
     suargs = ["root","--command="+program_name+astring]
     execvp("su",suargs)

 ## Check command line options
 if options.listrepos:
   print "Available repositories are:"
   for r in repolist:
     print "  ",r[:-5]        
   exit()  
   
 ## Start offering repos 
 yum=[" "," "]
 for f in repolist:      
   response = raw_input("Use repository: " + f[:-5] + "? (Y/n)")
   if response == "y" or response == "Y":
     yum.append("--enablerepo=" + f[:-5])
   elif response == "n" or response == "N":
     yum.append("--disablerepo=" + f[:-5])
   else:
     yum.append("--disablerepo=" + f[:-5])

 ## Add other yum arguments    
 for a in arguments:
   if a[0] != "-" and a != "":
     yum.append(a)

 ## Run Yum
 execvp("yum",yum)
   
if __name__ == "__main__":

 main()

 

it'll work now, because it wasnt indented, only the first option was being read.

 

iphitus

Link to comment
Share on other sites

$ $ yumrepo install ifplugd
This program requires root access, run as root? (Y/n)
Password:
Use repository: freshrpms? (Y/n)n
Use repository: fedora-devel? (Y/n)n
Use repository: livna-testing? (Y/n)n
Use repository: atrpms-bleeding? (Y/n)n
Use repository: newsrpms? (Y/n)n
Use repository: fedora-us? (Y/n)n
Use repository: fedora? (Y/n)y
Use repository: atrpms-testing? (Y/n)n
Use repository: atrpms-stable? (Y/n)n
Use repository: fedora-updates-testing? (Y/n)n
Use repository: livna-stable? (Y/n)n
Use repository: fedora-updates? (Y/n)y
Use repository: dries? (Y/n)n
Use repository: atrpms-good? (Y/n)n
Use repository: dag? (Y/n)y
Use repository: livna-unstable? (Y/n)n

   Usage:  yum [options] < update | install | info | remove | list |
           clean | provides | search | check-update | groupinstall |
           groupupdate | grouplist | groupinfo | groupremove | generate-rss |
           makecache | localinstall >

       Options:
       -c [config file] - specify the config file to use
       -e [error level] - set the error logging level
       -d [debug level] - set the debugging level
       -y - answer yes to all questions
       -R [time in minutes] - set the max amount of time to randomly run in
       -C run from cache only - do not update the cache
       --installroot=[path] - set the install root (default '/')
       --version - output the version of yum
       --rss-filename=[path/filename] - set the filename to generate rss to
       --exclude=package to exclude
       --disablerepo=repository id to disable (overrides config file)
       --enablerepo=repository id to enable (overrides config file)

       -h, --help  - this screen

 

It's not executing the "install" option.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...