From 02e268f57b4055f6cc59101ac88831a2b4a2daf4 Mon Sep 17 00:00:00 2001 From: Natanael Date: Wed, 7 May 2025 07:41:50 -0300 Subject: [PATCH] Initial commit --- LICENSE | 339 +++++++++++++++++++++++++++++++++++++++ README.md | 6 + build.sh | 42 +++++ screenshots/screen01.png | Bin 0 -> 37210 bytes src/font-installer.sh | 40 +++++ src/launcher.desktop | 11 ++ 6 files changed, 438 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 build.sh create mode 100644 screenshots/screen01.png create mode 100644 src/font-installer.sh create mode 100644 src/launcher.desktop diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 of the License, 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..b671fab --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# Instalador de fontes +Um pequeno utilitário para pré-visualizar e instalar arquivos de fonte no Tiger OS, ele gera uma imagem com o pangrama "The quick brown fox jumps over the lazy dog" permitinto ver como a fonte é antes de instalá-la + +# Screenshots + +![](screenshots/screen01.png) diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..cb1763c --- /dev/null +++ b/build.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +[ ! "${EUID}" = "0" ] && { + echo "Execute esse script como root:" + echo + echo " sudo ${0}" + echo + exit 1 +} + +HERE="$(dirname "$(readlink -f "${0}")")" + +working_dir=$(mktemp -d) + +mkdir -p "${working_dir}/usr/bin" \ + "${working_dir}/usr/share/applications/" \ + "${working_dir}/DEBIAN" + +cp "${HERE}/src/font-installer.sh" "${working_dir}/usr/bin/font-installer-gui" +cp "${HERE}/src/launcher.desktop" "${working_dir}/usr/share/applications/font-installer.desktop" + +chmod a+x "${working_dir}/usr/bin/font-installer-gui" + +(echo "Package: instalador-de-fontes" + echo "Priority: optional" + echo "Version: 1.0" + echo "Architecture: all" + echo "Maintainer: Natanael Barbosa Santos" + echo "Depends: yad, imagemagick" + echo "Description: $(cat ${HERE}/README.md | sed -n '1p')" + echo +) > "${working_dir}/DEBIAN/control" + +dpkg -b ${working_dir} +rm -rfv ${working_dir} + +mv "${working_dir}.deb" "${HERE}/instalador-de-fontes.deb" + +chmod 777 "${HERE}/instalador-de-fontes.deb" +chmod -x "${HERE}/instalador-de-fontes.deb" + + diff --git a/screenshots/screen01.png b/screenshots/screen01.png new file mode 100644 index 0000000000000000000000000000000000000000..f448c1cbb762bac4d2ebd97b3be44ad44351ae32 GIT binary patch literal 37210 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

eNy}YXdyGZ*?oDwtoK{}Rn=LVtZeCvUXAQy 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 h|Dhkb!>Y3IwKqQtXjvhRD-*{{@Lx^HBf* literal 0 HcmV?d00001 diff --git a/src/font-installer.sh b/src/font-installer.sh new file mode 100644 index 0000000..4907029 --- /dev/null +++ b/src/font-installer.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +[ -f "${1}" ] || { + echo "Você precisa fornecer um arquivo!" + exit +} + +font_file=$(readlink -f "${1}") +base_name=$(basename "${font_file}") + + +data=$(fc-scan --format "n:%{fullname}\ns:%{style}\nt:%{fontformat}\nf:%{family}\nd:%{foundry}\n" "${font_file}") + +[ ! "${?}" == "0" ] && { + yad --center --borders=32 --button=Ok --fixed --text="O arquivo '${font_file}' não é um arquivo de fonte válido!\n" --width=480 --title="Instalador de fontes do Tiger OS" --window-icon=font-ttf --fixed + exit 1 +} + +font_name=$(echo "${data}" | grep "^n:" | cut -c 3- | head -n 1) +font_style=$(echo "${data}" | grep "^s:" | cut -c 3- | head -n 1) +font_family=$(echo "${data}" | grep "^f:" | cut -c 3- | head -n 1) +font_type=$(echo "${data}" | grep "^t:" | cut -c 3- | head -n 1) +font_foundry=$(echo "${data}" | grep "^d:" | cut -c 3- | head -n 1) + +preview_file=$(mktemp --suffix=.png) +convert -size 736x240 -background white -font "${font_file}" -pointsize 64 -fill black -gravity center caption:"The quick brown fox jumps over the lazy dog" -flatten "${preview_file}" + +yad --center --borders=32 --image-on-top --image="${preview_file}" --form --field=" ":LBL --field="Nome:":LBL --field="Estilo:":LBL --field="Tipo:":LBL --field="Família:":LBL --field="Fundação: ":LBL --field=" ":LBL --field=" ":LBL --field="${font_name}":LBL --field="${font_style}":LBL --field="${font_type}":LBL --field="${font_family}'s":LBL --field="${font_foundry}":LBL --field=" ":LBL --columns=2 --button="Cancelar":252 --button="Instalar":0 --title="Instalador de fontes do Tiger OS - ${base_name}" --window-icon=font-ttf --fixed && { + + mkdir -p "${HOME}/.local/share/fonts" + cp "${font_file}" "${HOME}/.local/share/fonts" + + fc-cache -f -v|yad --title="Instalador de fontes do Tiger OS" --window-icon=font-ttf --center --borders=32 --no-buttons --fixed --text="Instalando a fonte ${font_name} ${font_style}\n" --progress --pulsate --auto-close --width=480 --progress-text=" " --fixed + + yad --center --borders=32 --button=Ok --fixed --text="A instalação foi um sucesso!\n" --width=480 --title="Instalador de fontes do Tiger OS" --window-icon=font-ttf + +} + +rm "${preview_file}" + diff --git a/src/launcher.desktop b/src/launcher.desktop new file mode 100644 index 0000000..020e74c --- /dev/null +++ b/src/launcher.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Exec=/usr/tiger_tools/font-installer.sh %F +Name=Instalar fonte +X-KDE-StartupNotify=true +Icon=font-ttf +Terminal=false +Categories=X-TigerTools; +MimeType=font/otf;font/ttf;font/woff;font/woff2; +NoDisplay=true +