]> kaliko git repositories - mpd-goodies.git/blobdiff - crop
* rewrote mtopls
[mpd-goodies.git] / crop
diff --git a/crop b/crop
index 9a08eb1e0b2c743f9e784e1850a4b3e4330db5d5..2b255f18aa3f4095bf8c4888fe2d2c7fc726804e 100755 (executable)
--- a/crop
+++ b/crop
@@ -26,16 +26,7 @@ from lib.startop import StartOpt
 
 NAME = 'crop'
 VERSION = '0.1'
-
-CROP_OPTS = list([
-    {
-        'sw': ['-n', '--nbtracks'],
-        'type': 'int',
-        'dest': 'nb_tracks',
-        'default': 6,
-        'metavar': '<n>',
-        'help': 'keep <n> tracks before currently played.'},
-    ])
+USAGE = 'USAGE:  %prog [--help] | [ <n> ]'
 
 class Crop(StartOpt, MPDClass):
     """
@@ -43,24 +34,37 @@ class Crop(StartOpt, MPDClass):
     script_info = dict({
         'version': VERSION,
         'prog_name': NAME,
-        'description': 'Keep <n> tracks before currently played, removed others.',
+        'description': 'Keep <n> tracks before currently played, removed others. Default is to keep 6 tracks.',
+        'usage': USAGE,
         })
 
     def __init__(self):
         """"""
-        StartOpt.__init__(self, self.__class__.script_info, CROP_OPTS)
+        StartOpt.__init__(self, self.__class__.script_info, [])
         MPDClass.__init__(self)
+        self.nb_tracks = 6
+        self._get_arg()
         self._run()
 
+    def _get_arg(self):
+        """"""
+        if not self.cli_args:
+            return True
+        try:
+            self.nb_tracks = int(self.cli_args[0])
+        except ValueError, err:
+            self.parser.error('invalid argument, not a natural number? (%s)' % err)
+
     def _run(self):
         """"""
         print 'Connecting %s:%i' % (self.cli_options.host, self.cli_options.port)
+        print 'Keeping %i tracks' % self.nb_tracks
         self.mpdConnect()
         current_pos = int(self.client.currentsong().get('pos'))
-        if current_pos <=  self.cli_options.nb_tracks:
+        if current_pos <=  self.nb_tracks:
             self.client.disconnect()
             sys.exit(0)
-        while current_pos > self.cli_options.nb_tracks:
+        while current_pos > self.nb_tracks:
             self.client.delete(0)
             current_pos = int(self.client.currentsong().get('pos'))
         self.client.disconnect()