001 /* 002 * Jpkg - Java library and tools for operating system package creation. 003 * 004 * Copyright (c) 2007 Three Rings Design, Inc. 005 * All rights reserved. 006 * 007 * Redistribution and use in source and binary forms, with or without 008 * modification, are permitted provided that the following conditions 009 * are met: 010 * 1. Redistributions of source code must retain the above copyright 011 * notice, this list of conditions and the following disclaimer. 012 * 2. Redistributions in binary form must reproduce the above copyright 013 * notice, this list of conditions and the following disclaimer in the 014 * documentation and/or other materials provided with the distribution. 015 * 3. Neither the name of the copyright owner nor the names of contributors 016 * may be used to endorse or promote products derived from this software 017 * without specific prior written permission. 018 * 019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 021 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 023 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 024 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 025 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 026 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 027 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 028 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 029 * POSSIBILITY OF SUCH DAMAGE. 030 */ 031 package com.threerings.jpkg.debian; 032 033 import java.io.IOException; 034 import java.io.InputStream; 035 036 /** 037 * Holds Debian maintainer script types and the {@link InputStream} with the script content. 038 */ 039 public interface MaintainerScript 040 { 041 /** 042 * The types of Debian maintainer scripts and the file names they should have. 043 */ 044 public enum Type { 045 /** The preinst maintainer script. */ 046 PREINST ("preinst"), 047 /** The postinst maintainer script. */ 048 POSTINST ("postinst"), 049 /** The prerm maintainer script. */ 050 PRERM ("prerm"), 051 /** The postrm maintainer script. */ 052 POSTRM ("postrm"); 053 054 Type (String name) { 055 _name = name; 056 } 057 058 /** 059 * Returns the filename used for this maintainer script in the control tar file. 060 */ 061 public String getFilename () 062 { 063 return _name; 064 } 065 066 /** The filename for this maintainer script in the control tar file. */ 067 private final String _name; 068 } 069 070 /** 071 * Returns the {@link Type} of script this instance is. 072 */ 073 public Type getType (); 074 075 /** 076 * Returns the {@link InputStream} with the script contents for this type. 077 */ 078 public InputStream getStream () throws IOException; 079 080 /** 081 * Returns the number of bytes of data in the {@link InputStream}. 082 */ 083 public long getSize (); 084 }