Bug 19063 - Add shell-tmpdir or something
Summary: Add shell-tmpdir or something
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: libshell (show other bugs)
Version: unstable
Hardware: all Linux
: P2 enhancement
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-03-04 17:51 MSK by Sir Raorn
Modified: 2009-04-13 02:33 MSD (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sir Raorn 2009-03-04 17:51:13 MSK
В пакете qa-robot есть замечательный файл /usr/bin/tmpdir.sh:

$ perldoc /usr/bin/tmpdir.sh
NAME
       tmpdir.sh - manage $TMPDIR

SYNOPSIS
         #!/bin/sh
         . tmpdir.sh

DESCRIPTION
       When sourced, this script provides private $TMPDIR, which will be purged upon exit.

Хотелось бы видеть в libshell нечто подобное.
Comment 1 Alexey Gladkov 2009-03-04 18:09:29 MSK
Можно поподробнее про желаемый функционал ?

Потому что то ты хочешь можно реализовать так:

. shell-signal

workdir="$(mktemp -dt "$PROG.XXXXXXXXXX")"
exit_function() {
   rm -rf -- "$workdir";
   exit "$1";
} 
set_cleanup_handler exit_function
Comment 2 Sir Raorn 2009-03-05 17:40:57 MSK
Да, действительно.

P.S. А мне обязательно использовать exit в своей exit_function?  В gear, на мой взгляд, это приятнее сделано.
Comment 3 Alexey Gladkov 2009-03-05 18:05:00 MSK
(В ответ на комментарий №2)
> P.S. А мне обязательно использовать exit в своей exit_function?

Разумеется имя функции может быть произвольным.

> В gear, на мой взгляд, это приятнее сделано.

Единственное различие в названии:

install_cleanup_handler -> set_cleanup_handler

Что именно тебе кажется более удобным в gear?
Comment 4 Sir Raorn 2009-03-05 18:57:34 MSK
Всё, вижу по коду.  То же самое, просто меня немного смутил exit "$1" в "моей" exit_function().
Comment 5 Michael Shigorin 2009-03-07 00:00:35 MSK
(In reply to comment #1)
> Потому что то ты хочешь можно реализовать так:
Вот это мож и в библиотеку?
Comment 6 Alexey Gladkov 2009-03-07 01:12:38 MSK
(В ответ на комментарий №5)
> Вот это мож и в библиотеку?

Ты знаешь сколько ещё можно таких примитивов написать ?

Эта функция учитывает большинство проблем при создании обработчиков сигналов. Хотя мне больше нравится signal_handler(). Она позволяет создание множественных обработчиков.