]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
add my scripts directory to git
authorRay Strode <rstrode@redhat.com>
Fri, 8 Jun 2007 16:13:45 +0000 (12:13 -0400)
committerRay Strode <rstrode@redhat.com>
Fri, 8 Jun 2007 16:13:45 +0000 (12:13 -0400)
scripts/Makefile.am [new file with mode: 0644]
scripts/default.cfg [new file with mode: 0644]
scripts/new-object.sh [new file with mode: 0755]
scripts/plymouth-update-initrd.sh [new file with mode: 0755]

diff --git a/scripts/Makefile.am b/scripts/Makefile.am
new file mode 100644 (file)
index 0000000..82b00b4
--- /dev/null
@@ -0,0 +1,8 @@
+SUBDIRS = 
+
+noinst_SCRIPTS = new-object.sh 
+
+scriptsdir = $(libexecdir)/plymouth
+scripts_SCRIPTS = plymouth-update-initrd.sh
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/scripts/default.cfg b/scripts/default.cfg
new file mode 100644 (file)
index 0000000..cc96c7e
--- /dev/null
@@ -0,0 +1,617 @@
+# The type of line endings
+newlines                      = lf     # auto/lf/crlf/cr
+
+# The original size of tabs in the input
+input_tab_size                = 8        # number
+
+# The ascii value of the string escape char, usually 92 (\). (Pawn)
+string_escape_char            = 92       # number
+
+# The number of columns to indent per level.
+# Usually 2, 3, 4, or 8.
+indent_columns                = 2        # number
+
+# How to use tabs when indenting code
+# 0=spaces only
+# 1=indent with tabs, align with spaces
+# 2=indent and align with tabs
+indent_with_tabs              = 0        # number
+
+# Whether to indent strings broken by '\' so that they line up
+indent_align_string           = false    # false/true
+
+# Spaces to indent '{' from level
+indent_brace                  = 2        # number
+
+# Whether braces are indented to the body level
+indent_braces                 = false    # false/true
+
+# Indent based on the size of the brace parent, ie 'if' => 3 spaces, 'for' => 4 spaces, etc.
+indent_brace_parent           = false    # false/true
+
+# Whether the 'namespace' body is indented
+indent_namespace              = false    # false/true
+
+# Whether the 'class' body is indented
+indent_class                  = false    # false/true
+
+# Whether to indent the stuff after a leading class colon
+indent_class_colon            = false    # false/true
+
+# Whether to indent continued function call parameters one indent level (true) or aligns instead of indent (false)
+indent_func_call_param        = false    # false/true
+
+# The number of spaces to indent a continued '->' or '.'
+# Usually set to 0, 1, or indent_columns.
+indent_member                 = 0        # number
+
+# Spaces to indent single line ('//') comments on lines before code
+indent_sing_line_comments     = 0        # number
+
+# Spaces to indent 'case' from 'switch'
+# Usually 0 or indent_columns.
+indent_switch_case            = 2        # number
+
+# Spaces to indent '{' from 'case'.
+# By default, the brace will appear under the 'c' in case.
+# Usually set to 0 or indent_columns.
+indent_case_brace             = 2        # number
+
+# Whether to indent comments found in first column
+indent_col1_comment           = false    # false/true
+
+# How to indent goto labels
+#  >0 : absolute column where 1 is the leftmost column
+#  <=0 : subtract from brace indent
+indent_label                  = 1        # number
+
+# Same as indent_label, but for access specifiers that are followed by a colon
+indent_access_spec            = 1        # number
+
+# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
+indent_paren_nl               = false    # false/true
+
+# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
+indent_square_nl              = false    # false/true
+
+#
+# Spacing options
+#
+
+# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
+sp_arith                      = add   # ignore/add/remove/add
+
+# Add or remove space around assignment operator '=', '+=', etc
+sp_assign                     = add   # ignore/add/remove/add
+
+# Add or remove space around boolean operators '&&' and '||'
+sp_bool                       = add   # ignore/add/remove/add
+
+# Add or remove space around compare operator '<', '>', '==', etc
+sp_compare                    = add   # ignore/add/remove/add
+
+# Add or remove space inside '(' and ')'
+sp_inside_paren               = remove   # ignore/add/remove/add
+
+# Add or remove space between nested parens
+sp_paren_paren                = remove   # ignore/add/remove/add
+
+# Whether to balance spaces inside nested parens
+sp_balance_nested_parens      = false    # false/true
+
+# Add or remove space between ')' and '{'
+sp_paren_brace                = add   # ignore/add/remove/add
+
+# Add or remove space before pointer star '*'
+sp_before_ptr_star            = add   # ignore/add/remove/add
+
+# Add or remove space between pointer stars '*'
+sp_between_ptr_star           = remove   # ignore/add/remove/add
+
+# Add or remove space after pointer star '*'
+sp_after_ptr_star             = remove   # ignore/add/remove/add
+
+# Add or remove space before reference sign '&'
+sp_before_byref               = add   # ignore/add/remove/add
+
+# Add or remove space after reference sign '&'
+sp_after_byref                = remove   # ignore/add/remove/add
+
+# Add or remove space before '<>'
+sp_before_angle               = add   # ignore/add/remove/add
+
+# Add or remove space after '<>'
+sp_after_angle                = add   # ignore/add/remove/add
+
+# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
+sp_before_sparen              = add   # ignore/add/remove/add
+
+# Add or remove space inside if-condition '(' and ')'
+sp_inside_sparen              = remove   # ignore/add/remove/add
+
+# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
+sp_after_sparen               = add   # ignore/add/remove/add
+
+# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
+sp_sparen_brace               = add   # ignore/add/remove/add
+
+# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
+sp_special_semi               = add   # ignore/add/remove/add
+
+# Add or remove space before ';'
+sp_before_semi                = remove   # ignore/add/remove/add
+
+# Add or remove space before ';' in 'for' statements
+sp_before_semi_for            = remove   # ignore/add/remove/add
+
+# Add or remove space before '[' (except '[]')
+sp_before_square              = remove   # ignore/add/remove/add
+
+# Add or remove space before '[]'
+sp_before_squares             = remove   # ignore/add/remove/add
+
+# Add or remove space inside '[' and ']'
+sp_inside_square              = remove   # ignore/add/remove/add
+
+# Add or remove space after ','
+sp_after_comma                = add   # ignore/add/remove/add
+
+# Add or remove space before ','
+sp_before_comma               = remove   # ignore/add/remove/add
+
+# Add or remove space between 'operator' and operator sign
+sp_after_operator             = remove   # ignore/add/remove/add
+
+# Add or remove space after cast
+sp_after_cast                 = add   # ignore/add/remove/add
+
+# Add or remove space between 'sizeof' and '('
+sp_sizeof_paren               = add   # ignore/add/remove/add
+
+# Add or remove space after the tag keyword (Pawn)
+sp_after_tag                  = ignore   # ignore/add/remove/add
+
+# Add or remove space inside enum '{' and '}'
+sp_inside_braces_enum         = add   # ignore/add/remove/add
+
+# Add or remove space inside struct/union '{' and '}'
+sp_inside_braces_struct       = add   # ignore/add/remove/add
+
+# Add or remove space inside '{' and '}'
+sp_inside_braces              = add   # ignore/add/remove/add
+
+# Add or remove space inside '<' and '>'
+sp_inside_angle               = remove   # ignore/add/remove/add
+
+# Add or remove space between return type and function name
+# A minimum of 1 is addd except for pointer return types.
+sp_type_func                  = ignore   # ignore/add/remove/add
+
+# Add or remove space between function name and '(' on function declaration
+sp_func_proto_paren           = add   # ignore/add/remove/add
+
+# Add or remove space between function name and '(' on function definition
+sp_func_def_paren             = add   # ignore/add/remove/add
+
+# Add or remove space inside empty function '()'
+sp_inside_fparens             = ignore   # ignore/add/remove/add
+
+# Add or remove space inside function '(' and ')'
+sp_inside_fparen              = ignore   # ignore/add/remove/add
+
+# Add or remove space between ']' and '(' when part of a function call.
+sp_square_fparen              = add   # ignore/add/remove/add
+
+# Add or remove space between ')' and '{' of function
+sp_fparen_brace               = add   # ignore/add/remove/add
+
+# Add or remove space between function name and '(' on function calls
+sp_func_call_paren            = add   # ignore/add/remove/add
+
+# Add or remove space between a constructor/destructor and the open paren
+sp_func_class_paren           = ignore   # ignore/add/remove/add
+
+# Add or remove space between 'return' and '('
+sp_return_paren               = add   # ignore/add/remove/add
+
+# Add or remove space between macro and value
+sp_macro                      = ignore   # ignore/add/remove/add
+
+# Add or remove space between macro function ')' and value
+sp_macro_func                 = ignore   # ignore/add/remove/add
+
+# Add or remove space between 'else' and '{' if on the same line
+sp_else_brace                 = add   # ignore/add/remove/add
+
+# Add or remove space between '}' and 'else' if on the same line
+sp_brace_else                 = add   # ignore/add/remove/add
+
+# Add or remove space between 'catch' and '{' if on the same line
+sp_catch_brace                = ignore   # ignore/add/remove/add
+
+# Add or remove space between '}' and 'catch' if on the same line
+sp_brace_catch                = ignore   # ignore/add/remove/add
+
+# Add or remove space between 'finally' and '{' if on the same line
+sp_finally_brace              = ignore   # ignore/add/remove/add
+
+# Add or remove space between '}' and 'finally' if on the same line
+sp_brace_finally              = ignore   # ignore/add/remove/add
+
+# Add or remove space between 'try' and '{' if on the same line
+sp_try_brace                  = ignore   # ignore/add/remove/add
+
+# Add or remove space between get/set and '{' if on the same line
+sp_getset_brace               = ignore   # ignore/add/remove/add
+
+#
+# Code alignment (not left column spaces/tabs)
+#
+
+# Whether to keep non-indenting tabs
+align_keep_tabs               = false    # false/true
+
+# Whether to use tabs for alinging
+align_with_tabs               = false    # false/true
+
+# Whether to bump out to the next tab when aligning
+align_on_tabstop              = false    # false/true
+
+# Whether to left-align numbers
+align_number_left             = false    # false/true
+
+# Align variable definitions in prototypes and functions
+align_func_params             = true    # false/true
+
+# The span for aligning variable definitions (0=don't align)
+align_var_def_span            = 0        # number
+
+# How to align the star in variable definitions.
+#  0=Part of the type
+#  1=Part of the variable
+#  2=Dangling
+align_var_def_star_style      = 2        # number
+
+# The threshold for aligning variable definitions (0=no limit)
+align_var_def_thresh          = 0        # number
+
+# Whether to align the colon in struct bit fields
+align_var_def_colon           = false    # false/true
+
+# Whether to align inline struct/enum/union variable definitions
+align_var_def_inline          = false    # false/true
+
+# The span for aligning on '=' in assignments (0=don't align)
+align_assign_span             = 0        # number
+
+# The threshold for aligning on '=' in assignments (0=no limit)
+align_assign_thresh           = 0        # number
+
+# The span for aligning on '=' in enums (0=don't align)
+align_enum_equ_span           = 0        # number
+
+# The threshold for aligning on '=' in enums (0=no limit)
+align_enum_equ_thresh         = 0        # number
+
+# The span for aligning struct/union (0=don't align)
+align_var_struct_span         = 0        # number
+
+# The span for aligning struct initializer values (0=don't align)
+align_struct_init_span        = 0        # number
+
+# The minimum space between the type and the synonym of a typedef
+align_typedef_gap             = 1        # number
+
+# The span for aligning single-line typedefs (0=don't align)
+align_typedef_span            = 0        # number
+
+# Controls the positioning of the '*' in typedefs. Just try it.
+# 0: Align on typdef type, ignore '*'
+# 1: The '*' is part of type name: typedef int  *pint;
+# 2: The '*' is part of the type, but dangling: typedef int *pint;
+align_typedef_star_style      = 2        # number
+
+# The span for aligning comments that end lines (0=don't align)
+align_right_cmt_span          = 0        # number
+
+# The span for aligning function prototypes (0=don't align)
+align_func_proto_span         = 0        # number
+
+# Whether to align macros wrapped with a backslash and a newline
+align_nl_cont                 = false    # false/true
+
+# The minimum space between label and value of a preprocessor define
+align_pp_define_gap           = 0        # number
+
+# The span for aligning on '#define' bodies (0=don't align)
+align_pp_define_span          = 0        # number
+
+#
+# Newline adding and removing options
+#
+
+# Try to limit code width to N number of columns
+code_width                    = 80        # number
+
+# Whether to collapse empty blocks between '{' and '}'
+nl_collapse_empty_body        = true    # false/true
+
+# Don't touch one-line function bodies inside a class xx { } body
+nl_class_leave_one_liners     = false    # false/true
+
+# Add or remove newlines at the start of the file
+nl_start_of_file              = ignore   # ignore/add/remove/add
+
+# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'add'
+nl_start_of_file_min          = 0        # number
+
+# Add or remove newline at the end of the file
+nl_end_of_file                = add   # ignore/add/remove/add
+
+# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'add')
+nl_end_of_file_min            = 1        # number
+
+# Add or remove newline between '=' and '{'
+nl_assign_brace               = ignore   # ignore/add/remove/add
+
+# The number of newlines after a block of variable definitions
+nl_func_var_def_blk           = 1        # number
+
+# Add or remove newline between function call and '('
+nl_fcall_brace                = ignore   # ignore/add/remove/add
+
+# Add or remove newline between 'enum' and '{'
+nl_enum_brace                 = add   # ignore/add/remove/add
+
+# Add or remove newline between 'struct and '{'
+nl_struct_brace               = add   # ignore/add/remove/add
+
+# Add or remove newline between 'union' and '{'
+nl_union_brace                = add   # ignore/add/remove/add
+
+# Add or remove newline between 'if' and '{'
+nl_if_brace                   = add   # ignore/add/remove/add
+
+# Add or remove newline between '}' and 'else'
+nl_brace_else                 = add   # ignore/add/remove/add
+
+# Add or remove newline between 'else if' and '{'
+# If set to ignore, nl_if_brace is used instead
+nl_elseif_brace               = add   # ignore/add/remove/add
+
+# Add or remove newline between 'else' and '{'
+nl_else_brace                 = add   # ignore/add/remove/add
+
+# Add or remove newline between '}' and 'finally'
+nl_brace_finally              = add   # ignore/add/remove/add
+
+# Add or remove newline between 'finally' and '{'
+nl_finally_brace              = add   # ignore/add/remove/add
+
+# Add or remove newline between 'try' and '{'
+nl_try_brace                  = add   # ignore/add/remove/add
+
+# Add or remove newline between get/set and '{'
+nl_getset_brace               = ignore   # ignore/add/remove/add
+
+# Add or remove newline between 'for' and '{'
+nl_for_brace                  = add   # ignore/add/remove/add
+
+# Add or remove newline between 'catch' and '{'
+nl_catch_brace                = ignore   # ignore/add/remove/add
+
+# Add or remove newline between '}' and 'catch'
+nl_brace_catch                = ignore   # ignore/add/remove/add
+
+# Add or remove newline between 'while' and '{'
+nl_while_brace                = add   # ignore/add/remove/add
+
+# Add or remove newline between 'do' and '{'
+nl_do_brace                   = add   # ignore/add/remove/add
+
+# Add or remove newline between '}' and 'while' of 'do' statement
+nl_brace_while                = add   # ignore/add/remove/add
+
+# Add or remove newline between 'switch' and '{'
+nl_switch_brace               = add   # ignore/add/remove/add
+
+# Whether to put a newline before 'case' statement
+nl_before_case                = true    # false/true
+
+# Whether to put a newline after 'case' statement
+nl_after_case                 = false    # false/true
+
+# Newline between namespace and {
+nl_namespace_brace            = ignore   # ignore/add/remove/add
+
+# Add or remove newline between 'template<>' and 'class'
+nl_template_class             = ignore   # ignore/add/remove/add
+
+# Add or remove newline between 'class' and '{'
+nl_class_brace                = ignore   # ignore/add/remove/add
+
+# Add or remove newline after each ',' in the constructor member initialization
+nl_class_init_args            = ignore   # ignore/add/remove/add
+
+# Add or remove newline between return type and function name in definition
+nl_func_type_name             = ignore   # ignore/add/remove/add
+
+# Add or remove newline after '(' in a function declaration
+nl_func_decl_start            = remove   # ignore/add/remove/add
+
+# Add or remove newline after each ',' in a function declaration
+nl_func_decl_args             = add   # ignore/add/remove/add
+
+# Add or remove newline before the ')' in a function declaration
+nl_func_decl_end              = remove   # ignore/add/remove/add
+
+# Add or remove newline between function signature and '{'
+nl_fdef_brace                 = add   # ignore/add/remove/add
+
+# Whether to put a newline after 'return' statement
+nl_after_return               = false    # false/true
+
+# Whether to put a newline after semicolons, except in 'for' statements
+nl_after_semicolon            = true    # false/true
+
+# Whether to put a newline after brace open
+nl_after_brace_open           = true    # false/true
+
+# Whether to alter newlines in '#define' macros
+nl_define_macro               = false    # false/true
+
+# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
+nl_squeeze_ifdef              = false    # false/true
+
+# Add or remove newline before 'if'
+nl_before_if                  = ignore   # ignore/add/remove/add
+
+# Add or remove newline after 'if'
+nl_after_if                   = remove   # ignore/add/remove/add
+
+# Add or remove newline before 'for'
+nl_before_for                 = ignore   # ignore/add/remove/add
+
+# Add or remove newline after 'for'
+nl_after_for                  = ignore   # ignore/add/remove/add
+
+# Add or remove newline before 'while'
+nl_before_while               = ignore   # ignore/add/remove/add
+
+# Add or remove newline after 'while'
+nl_after_while                = ignore   # ignore/add/remove/add
+
+# Add or remove newline before 'switch'
+nl_before_switch              = ignore   # ignore/add/remove/add
+
+# Add or remove newline after 'switch'
+nl_after_switch               = ignore   # ignore/add/remove/add
+
+# Add or remove newline before 'do'
+nl_before_do                  = ignore   # ignore/add/remove/add
+
+# Add or remove newline after 'do'
+nl_after_do                   = ignore   # ignore/add/remove/add
+
+# Whether to double-space commented-entries in struct/enum
+nl_ds_struct_enum_cmt         = false    # false/true
+
+#
+# Positioning options
+#
+
+# The position of boolean operators in wrapped expressions
+pos_bool                      = lead   # ignore/lead/trail
+
+# The position of colons between constructor and member initialization
+pos_class_colon               = ignore   # ignore/lead/trail
+
+# Whether to fully split long 'for' statements at semi-colons
+ls_for_split_full             = true    # false/true
+
+# Whether to fully split long function protos/calls at commas
+ls_func_split_full            = true    # false/true
+
+#
+# Blank line options
+#
+
+# The maximum consecutive newlines
+nl_max                        = 2        # number
+
+# The number of newlines after a function prototype, if followed by another function prototype
+nl_after_func_proto           = 1        # number
+
+# The number of newlines after a function prototype, if not followed by another function prototype
+nl_after_func_proto_group     = 2        # number
+
+# The number of newlines after '}' of a multi-line function body
+nl_after_func_body            = 2        # number
+
+# The number of newlines after '}' of a single line function body
+nl_after_func_body_one_liner  = 2        # number
+
+# The minimum number of newlines before a multi-line comment.
+# Doesn't apply if after a brace open or another multi-line comment.
+nl_before_block_comment       = 2        # number
+
+# The minimum number of newlines before a single-line C comment.
+# Doesn't apply if after a brace open or other single-line C comments.
+nl_before_c_comment           = 2        # number
+
+# The minimum number of newlines before a CPP comment.
+# Doesn't apply if after a brace open or other CPP comments.
+nl_before_cpp_comment         = 0        # number
+
+# Whether to remove blank lines after '{'
+eat_blanks_after_open_brace   = true    # false/true
+
+# Whether to remove blank lines before '}'
+eat_blanks_before_close_brace = true    # false/true
+
+#
+# Code modifying options (non-whitespace)
+#
+
+# Add or remove braces on single-line 'do' statement
+mod_full_brace_do             = add   # ignore/add/remove/add
+
+# Add or remove braces on single-line 'for' statement
+mod_full_brace_for            = remove   # ignore/add/remove/add
+
+# Add or remove braces on single-line function defintions. (Pawn)
+mod_full_brace_function       = ignore   # ignore/add/remove/add
+
+# Add or remove braces on single-line 'if' statement
+mod_full_brace_if             = remove   # ignore/add/remove/add
+
+# Don't remove braces around statements that span N newlines
+mod_full_brace_nl             = 0        # number
+
+# Add or remove braces on single-line 'while' statement
+mod_full_brace_while          = remove   # ignore/add/remove/add
+
+# Add or remove unnecessary paren on 'return' statement
+mod_paren_on_return           = remove   # ignore/add/remove/add
+
+# Whether to change optional semicolons to real semicolons
+mod_pawn_semicolon            = false    # false/true
+
+# Add parens on 'while' and 'if' statement around bools
+mod_full_paren_if_bool        = true    # false/true
+
+#
+# Comment modifications
+#
+
+# Whether to group cpp-comments that look like they are in a block
+cmt_cpp_group                 = false    # false/true
+
+# Whether to put an empty '/*' on the first line of the combined cpp-comment
+cmt_cpp_nl_start              = false    # false/true
+
+# Whether to put a newline before the closing '*/' of the combined cpp-comment
+cmt_cpp_nl_end                = false    # false/true
+
+# Whether to change cpp-comments into c-comments
+cmt_cpp_to_c                  = true    # false/true
+
+# Whether to put a star on subsequent comment lines
+cmt_star_cont                 = true    # false/true
+
+# The number of spaces to insert at the start of subsequent comment lines
+cmt_sp_before_star_cont       = 0        # number
+
+# The number of spaces to insert after the star on subsequent comment lines
+cmt_sp_after_star_cont        = 1        # number
+
+#
+# Preprocessor options
+#
+
+# Add or remove indent of preprocessor directives
+pp_indent                     = ignore   # ignore/add/remove/add
+
+# Add or remove space between # and, say, define
+pp_space                      = remove   # ignore/add/remove/add
+
diff --git a/scripts/new-object.sh b/scripts/new-object.sh
new file mode 100755 (executable)
index 0000000..ef2aea8
--- /dev/null
@@ -0,0 +1,389 @@
+#!/bin/bash
+
+NAMESPACE="Ply"
+AUTHOR="YOUR NAME <youremail@here.com>"
+#-----------------------------------------------------------------------------\f
+uppercase ()
+{
+  echo "${1}" | tr 'a-z' 'A-Z'
+}
+
+lowercase ()
+{
+  echo "${1}" | tr 'A-Z' 'a-z'
+}
+
+change_character ()
+{
+  echo "${1}" | tr "${2}" "${3}"
+}
+
+delete_character ()
+{
+  echo "${1}" | tr -d "${2}"
+}
+
+#-----------------------------------------------------------------------------\f
+MACRO_NAMESPACE="$(change_character $(uppercase ${NAMESPACE}) '-' '_')"
+METHOD_NAMESPACE="$(change_character $(lowercase ${NAMESPACE}) '-' '_')"
+
+OBJECT_NAME="$(delete_character ${1} '-')"
+MACRO_OBJECT_NAME="$(change_character $(uppercase ${1}) '-' '_')"
+METHOD_OBJECT_NAME="$(change_character $(lowercase ${1}) '-' '_')"
+FULL_OBJECT_NAME="$(delete_character ${NAMESPACE} '-')${OBJECT_NAME}"
+SHORT_OBJECT_NAME="$(lowercase $(echo ${1} | awk -F- '{print $NF}'))"
+
+HEADER_FILENAME="$(lowercase ${NAMESPACE}-${1}).h"
+HEADER_GUARD="$(change_character $(change_character $(uppercase ${HEADER_FILENAME}) '-' '_') '.' '_')" 
+
+SOURCE_FILENAME="$(lowercase ${NAMESPACE}-${1}).c"
+
+MACRO_PREFIX="${MACRO_NAMESPACE}_${MACRO_OBJECT_NAME}"
+METHOD_PREFIX="${METHOD_NAMESPACE}_${METHOD_OBJECT_NAME}"
+
+ERROR_QUARK="${METHOD_NAMESPACE}-$(lowercase ${1})"
+HUMAN_READABLE_NAME=$(change_character $(lowercase ${1}) '-' ' ')
+
+#-----------------------------------------------------------------------------\f
+cat << \ 4 > ${HEADER_FILENAME}
+/* vim: ts=4 sw=2 expandtab autoindent cindent
+ * ${HEADER_FILENAME} - ${2}
+ *
+ * Copyright (C) $(date +%Y) ${AUTHOR}
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ *
+ * Written By: ${AUTHOR}
+ */
+#ifndef ${HEADER_GUARD}
+#define ${HEADER_GUARD}
+
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define ${MACRO_NAMESPACE}_TYPE_${MACRO_OBJECT_NAME} (${METHOD_PREFIX}_get_type ())
+#define ${MACRO_PREFIX}(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ${MACRO_NAMESPACE}_TYPE_${MACRO_OBJECT_NAME}, ${FULL_OBJECT_NAME}))
+#define ${MACRO_PREFIX}_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ${MACRO_NAMESPACE}_TYPE_${MACRO_OBJECT_NAME}, ${FULL_OBJECT_NAME}Class))
+#define ${MACRO_NAMESPACE}_IS_${MACRO_OBJECT_NAME}(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ${MACRO_NAMESPACE}_TYPE_${MACRO_OBJECT_NAME}))
+#define ${MACRO_NAMESPACE}_IS_${MACRO_OBJECT_NAME}_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ${MACRO_NAMESPACE}_TYPE_${MACRO_OBJECT_NAME}))
+#define ${MACRO_PREFIX}_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), ${MACRO_NAMESPACE}_TYPE_${MACRO_OBJECT_NAME}, ${FULL_OBJECT_NAME}Class))
+#define ${MACRO_PREFIX}_ERROR (${METHOD_PREFIX}_error_quark ())
+
+typedef struct _${FULL_OBJECT_NAME} ${FULL_OBJECT_NAME};
+typedef struct _${FULL_OBJECT_NAME}Class ${FULL_OBJECT_NAME}Class;
+typedef struct _${FULL_OBJECT_NAME}Private ${FULL_OBJECT_NAME}Private;
+typedef enum _${FULL_OBJECT_NAME}Error ${FULL_OBJECT_NAME}Error;
+
+struct _${FULL_OBJECT_NAME}
+{
+  GObject parent;
+
+  /*< private >*/
+  ${FULL_OBJECT_NAME}Private *priv;
+};
+
+struct _${FULL_OBJECT_NAME}Class
+{
+  GObjectClass parent_class;
+
+  /* signals */
+#if 0
+  void (* foo) (${FULL_OBJECT_NAME} *${SHORT_OBJECT_NAME});
+#endif
+};
+
+enum _${FULL_OBJECT_NAME}Error
+{
+  ${MACRO_PREFIX}_ERROR_GENERIC = 0,
+};
+
+#ifndef ${MACRO_NAMESPACE}_HIDE_FUNCTION_DECLARATIONS
+GType ${METHOD_PREFIX}_get_type (void);
+GQuark ${METHOD_PREFIX}_error_quark (void);
+
+${FULL_OBJECT_NAME} *${METHOD_PREFIX}_new (void) G_GNUC_MALLOC;
+#endif
+
+G_END_DECLS
+#endif /* ${HEADER_GUARD} */
+\ 4
+#-----------------------------------------------------------------------------\f
+cat << \ 4 > ${SOURCE_FILENAME}
+/* vim: ts=4 sw=2 expandtab autoindent cindent
+ * ${SOURCE_FILENAME} - ${2}
+ *
+ * Copyright (C) $(date +%Y) ${AUTHOR}
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ *
+ * Written by: ${AUTHOR}
+ */
+#include "config.h"
+#include "${HEADER_FILENAME}"
+
+#include <errno.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gi18n.h>
+
+struct _${FULL_OBJECT_NAME}Private
+{
+  int bar;
+};
+
+static void ${METHOD_PREFIX}_finalize (GObject *object);
+#if 0
+static void ${METHOD_PREFIX}_class_install_signals (${FULL_OBJECT_NAME}Class *${SHORT_OBJECT_NAME}_class);
+static void ${METHOD_PREFIX}_class_install_properties (${FULL_OBJECT_NAME}Class *${SHORT_OBJECT_NAME}_class);
+
+static void ${METHOD_PREFIX}_set_property (GObject      *object,
+                                           guint         prop_id,
+                                           const GValue *value,
+                                           GParamSpec   *pspec);
+static void ${METHOD_PREFIX}_get_property (GObject    *object,
+                                           guint       prop_id,
+                                           GValue     *value,
+                                           GParamSpec *pspec);
+
+enum
+{
+  PROP_0 = 0,
+  PROP_BAR
+};
+
+#define ${MACRO_PREFIX}_DEFAULT_BAR 1
+
+enum
+{
+  FOO = 0,
+  NUMBER_OF_SIGNALS
+};
+
+static guint ${METHOD_PREFIX}_signals[NUMBER_OF_SIGNALS];
+#endif
+
+G_DEFINE_TYPE (${FULL_OBJECT_NAME}, ${METHOD_PREFIX}, G_TYPE_OBJECT);
+
+static void
+${METHOD_PREFIX}_class_init (${FULL_OBJECT_NAME}Class *${SHORT_OBJECT_NAME}_class)
+{
+  GObjectClass *object_class;
+
+  object_class = G_OBJECT_CLASS (${SHORT_OBJECT_NAME}_class);
+
+  object_class->finalize = ${METHOD_PREFIX}_finalize;
+  
+#if 0
+  ${METHOD_PREFIX}_class_install_properties (${SHORT_OBJECT_NAME}_class);
+  ${METHOD_PREFIX}_class_install_signals (${SHORT_OBJECT_NAME}_class);
+#endif
+
+  g_type_class_add_private (${SHORT_OBJECT_NAME}_class, sizeof (${FULL_OBJECT_NAME}Private));
+}
+
+#if 0
+static void
+${METHOD_PREFIX}_class_install_signals (${FULL_OBJECT_NAME}Class *${SHORT_OBJECT_NAME}_class)
+{
+  GObjectClass *object_class;
+
+  object_class = G_OBJECT_CLASS (${SHORT_OBJECT_NAME}_class);
+
+  ${METHOD_PREFIX}_signals[FOO] =
+    g_signal_new ("foo", G_OBJECT_CLASS_TYPE (object_class),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (${FULL_OBJECT_NAME}Class, foo),
+                  NULL, NULL, g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  ${SHORT_OBJECT_NAME}_class->foo = NULL;
+}
+
+static void
+${METHOD_PREFIX}_class_install_properties (${FULL_OBJECT_NAME}Class *${SHORT_OBJECT_NAME}_class)
+{
+  GObjectClass *object_class;
+  GParamSpec *param_spec;
+
+  object_class = G_OBJECT_CLASS (${SHORT_OBJECT_NAME}_class);
+  object_class->set_property = ${METHOD_PREFIX}_set_property;
+  object_class->get_property = ${METHOD_PREFIX}_get_property;
+
+  param_spec = g_param_spec_int ("bar", _("Bar"),
+                               _("The amount of bar"),
+                               0, G_MAXINT,
+                               ${MACRO_PREFIX}_DEFAULT_BAR,
+                               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+  g_object_class_install_property (object_class, PROP_BAR, param_spec);
+}
+#endif
+
+static void
+${METHOD_PREFIX}_init (${FULL_OBJECT_NAME} *${SHORT_OBJECT_NAME})
+{
+  ${SHORT_OBJECT_NAME}->priv = G_TYPE_INSTANCE_GET_PRIVATE (${SHORT_OBJECT_NAME}, 
+                                                            ${MACRO_NAMESPACE}_TYPE_${MACRO_OBJECT_NAME},
+                                                            ${FULL_OBJECT_NAME}Private);
+
+}
+
+static void
+${METHOD_PREFIX}_finalize (GObject *object)
+{
+  ${FULL_OBJECT_NAME} *${SHORT_OBJECT_NAME};
+  GObjectClass *parent_class;
+  
+  ${SHORT_OBJECT_NAME} = ${MACRO_PREFIX} (object);
+
+  parent_class = G_OBJECT_CLASS (${METHOD_PREFIX}_parent_class);
+
+
+
+  if (parent_class->finalize != NULL)
+    parent_class->finalize (object);
+}
+
+#if 0
+static void 
+${METHOD_PREFIX}_set_property (GObject      *object,
+                               guint         prop_id,
+                               const GValue *value,
+                               GParamSpec   *pspec)
+{
+  ${FULL_OBJECT_NAME} *${SHORT_OBJECT_NAME} = ${MACRO_PREFIX} (object);
+
+  switch (prop_id)
+    {
+      case PROP_BAR:
+        ${METHOD_PREFIX}_set_bar (${SHORT_OBJECT_NAME}, 
+                                  g_value_get_int (value));
+        break;
+      
+      default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+    }
+}
+
+static void 
+${METHOD_PREFIX}_get_property (GObject    *object,
+                               guint       prop_id,
+                               GValue     *value,
+                               GParamSpec *pspec)
+{
+  ${FULL_OBJECT_NAME} *${SHORT_OBJECT_NAME} = ${MACRO_PREFIX} (object);
+
+  switch (prop_id)
+    {
+      case PROP_BAR:
+            g_value_set_int (value, 
+                             ${METHOD_PREFIX}_get_bar (${SHORT_OBJECT_NAME}));
+        break;
+      
+      default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+    }
+}
+#endif
+
+GQuark
+${METHOD_PREFIX}_error_quark (void)
+{
+  static GQuark error_quark = 0;
+
+  if (error_quark == 0)
+    error_quark = g_quark_from_static_string ("${ERROR_QUARK}");
+
+  return error_quark;
+}
+
+${FULL_OBJECT_NAME} *
+${METHOD_PREFIX}_new (void)
+{
+  ${FULL_OBJECT_NAME} *${SHORT_OBJECT_NAME};
+
+  ${SHORT_OBJECT_NAME} = g_object_new (${MACRO_NAMESPACE}_TYPE_${MACRO_OBJECT_NAME}, NULL);
+
+  return ${SHORT_OBJECT_NAME};
+}
+
+#if 0
+void
+${METHOD_PREFIX}_set_bar (${FULL_OBJECT_NAME} *${SHORT_OBJECT_NAME},
+                          int                  bar)
+{
+  if (${SHORT_OBJECT_NAME}->priv->bar != bar)
+    {
+      ${SHORT_OBJECT_NAME}->priv->bar = bar;
+      g_object_notify (G_OBJECT (${SHORT_OBJECT_NAME}), "bar");
+    }
+}
+
+int
+${METHOD_PREFIX}_get_bar (${FULL_OBJECT_NAME} *${SHORT_OBJECT_NAME})
+{
+  return ${SHORT_OBJECT_NAME}->priv->bar;
+}
+#endif
+
+#ifdef ${MACRO_PREFIX}_ENABLE_TEST
+
+#include <stdio.h>
+#include <glib.h>
+
+int
+main (int    argc,
+      char **argv)
+{
+  ${FULL_OBJECT_NAME} *${SHORT_OBJECT_NAME};
+  int exit_code;
+
+  g_log_set_always_fatal (G_LOG_LEVEL_ERROR 
+                          | G_LOG_LEVEL_CRITICAL 
+                         | G_LOG_LEVEL_WARNING);
+
+  g_type_init ();
+
+  ${SHORT_OBJECT_NAME} = ${METHOD_PREFIX}_new ();
+
+  g_object_unref (${SHORT_OBJECT_NAME});
+
+  exit_code = 0;
+
+  return exit_code;
+}
+#endif /* ${MACRO_PREFIX}_ENABLE_TEST */
+\ 4
+
+uncrustify -c $(dirname $0)/default.cfg ${HEADER_FILENAME}
+mv ${HEADER_FILENAME}.uncrustify ${HEADER_FILENAME}
+uncrustify -c $(dirname $0)/default.cfg ${SOURCE_FILENAME}
+mv ${SOURCE_FILENAME}.uncrustify ${SOURCE_FILENAME}
diff --git a/scripts/plymouth-update-initrd.sh b/scripts/plymouth-update-initrd.sh
new file mode 100755 (executable)
index 0000000..276ed02
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+[ -z "$INITRD" ] && INITRD="/boot/initrd-$(/bin/uname -r).img"
+
+if [ -z "$NEW_INITRD" ]; then
+  NEW_INITRD="$(/bin/dirname $INITRD)/$(/bin/basename $INITRD .img)-plymouth.img"
+fi
+
+TMPDIR="$(mktemp -d $PWD/initrd.XXXXXXXXXX)"
+
+(
+    cd $TMPDIR
+    zcat $INITRD | cpio -q -Hnewc -i --make-directories
+    sed -i -e 's@^#!\(.*\)@#!/bin/plymouth \1@' init 
+    rm -f $NEW_INITRD
+    find | cpio -q -Hnewc -o | gzip -9 > $NEW_INITRD
+    [ $? -eq 0 ] && echo "Wrote $NEW_INITRD"
+)
+
+rm -rf "$TMPDIR"