# useedit: Useflag Editor

## Anarcho

So, ich habe mal wieder ein kleines Script geschrieben:

(Gibt es bestimmt schon, mir ist aber keins bekannt)

Beschreibung: 

Mit useedit kann man per Console mit einem einfachen Kommando neue USE-Flags hinzufügen, USE-Flags entfernen, die aktuellen anzeigen und überprüfen ob man ein bestimmtes Flag bereits gesetzt hat.

Beim hinzufügen wird geprüft ob das entsprechende Flag schon gesetzt ist.

Warum:

Mich hat es ein wenig genervt wenn ich mittels emerge foo -pv ein neues nützliches USE-flag entdeckt hatte, ich jedesmal den editor anwerfen musste.

Ebuild

Zu installieren im Portage-Overlay unter app-portage/useedit

Ich würde mich über Kommentare und Anregungen freuen.

----------

## Pylon

Klein, fein, aber buggy  :Wink: 

Ich habe meine USE-Flags über mehrere Zeilen mit \ getrennt verteilt.  Dein Script liest aber nur die erste Zeile aus.

Und entferne mal die Kommentarzeilen von crypto-mount aus dem ebuild  :Razz: 

----------

## Anarcho

Ups,

ja, habe mein altes ebuild einfach umgebaut. Werde das mal aktualisieren. 

Das mit den mehrzeiligen USE-Flags fehlt in der Tat noch. Daran hatte ich nicht gedachte. Wer macht schon sowas? Wozu hat man denn Zeilenumbruch im VIM ...  :Twisted Evil: 

----------

## slick

 *Anarcho wrote:*   

> Wer macht schon sowas?

 

Ich!  :Cool: 

Ich habe noch nichtmal ein \ drin. Bei mir ists ein

```
USE="

     a

     -b

     c

"
```

Ist einfach übersichtlicher.

----------

## Earthwings

 *Anarcho wrote:*   

> Ups,
> 
> ja, habe mein altes ebuild einfach umgebaut. Werde das mal aktualisieren. 
> 
> Das mit den mehrzeiligen USE-Flags fehlt in der Tat noch. Daran hatte ich nicht gedachte. Wer macht schon sowas? Wozu hat man denn Zeilenumbruch im VIM ... 

 

euse (aus gentoolkit) und app-portage/ufed machen das zum Beispiel...

----------

## Anarcho

Jaja, 

ist ja gut. Ich werde das noch ändern...

----------

## l3u

Man könnt natürlich die USE-Flags folgendermaßen auslesen:

```
#!/usr/bin/perl -w

use strict;

my $dz;

my @use_tmp;

my @use;

open($dz, "</etc/make.conf");

while(<$dz>)

{

  last if /^\s*USE=\"/;

}

s/^\s*USE=\"\s*|\s*\\\s*//;

if(/\"/)

{

  s/\"//g;

  push @use_tmp, $_;

}

else

{

  push @use_tmp, $_;

  while(<$dz>)

  {

    s/^\s+|\s+$|\s*\\\s*//g;

    last if /\"/;

    push @use_tmp, $_;

  }

  s/\"//;

  push @use_tmp, $_;

}

foreach(@use_tmp)

{

  push @use, split(/\s+/, $_);

}

print "USE-Flags:\n\n";

foreach(@use)

{

  print "$_\n";

}
```

----------

## l3u

Also auch, wenn das scheinbar nicht unbedingt auf riesiges Interesse stoßen wird: Man könnte auch sämtliche Probleme mit der Art und Weise, wie man USE-Flags notiert, umgehen, indem man die Bash das Parsen übernehemn läßt:

```
#!/usr/bin/perl

@use = split " ", `. /etc/make.conf && echo $USE`;
```

... oder so ... also auf der Shell funktioniert ". /etc/make.conf && echo $USE" jedenfalls ;-)

----------

## Battlestar Gentoo

Ein or die "$!\n" nach der Open-Anweisung sollte aber schon vorhanden sein  :Smile: 

----------

## l3u

Ach was, da tritt kein Fehler auf :-P

----------

