this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: init

robin 765ba4f5

+526
+287
LICENSE
··· 1 + EUROPEAN UNION PUBLIC LICENCE v. 1.2 2 + EUPL © the European Union 2007, 2016 3 + 4 + This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined 5 + below) which is provided under the terms of this Licence. Any use of the Work, 6 + other than as authorised under this Licence is prohibited (to the extent such 7 + use is covered by a right of the copyright holder of the Work). 8 + 9 + The Work is provided under the terms of this Licence when the Licensor (as 10 + defined below) has placed the following notice immediately following the 11 + copyright notice for the Work: 12 + 13 + Licensed under the EUPL 14 + 15 + or has expressed by any other means his willingness to license under the EUPL. 16 + 17 + 1. Definitions 18 + 19 + In this Licence, the following terms have the following meaning: 20 + 21 + - ‘The Licence’: this Licence. 22 + 23 + - ‘The Original Work’: the work or software distributed or communicated by the 24 + Licensor under this Licence, available as Source Code and also as Executable 25 + Code as the case may be. 26 + 27 + - ‘Derivative Works’: the works or software that could be created by the 28 + Licensee, based upon the Original Work or modifications thereof. This Licence 29 + does not define the extent of modification or dependence on the Original Work 30 + required in order to classify a work as a Derivative Work; this extent is 31 + determined by copyright law applicable in the country mentioned in Article 15. 32 + 33 + - ‘The Work’: the Original Work or its Derivative Works. 34 + 35 + - ‘The Source Code’: the human-readable form of the Work which is the most 36 + convenient for people to study and modify. 37 + 38 + - ‘The Executable Code’: any code which has generally been compiled and which is 39 + meant to be interpreted by a computer as a program. 40 + 41 + - ‘The Licensor’: the natural or legal person that distributes or communicates 42 + the Work under the Licence. 43 + 44 + - ‘Contributor(s)’: any natural or legal person who modifies the Work under the 45 + Licence, or otherwise contributes to the creation of a Derivative Work. 46 + 47 + - ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of 48 + the Work under the terms of the Licence. 49 + 50 + - ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, 51 + renting, distributing, communicating, transmitting, or otherwise making 52 + available, online or offline, copies of the Work or providing access to its 53 + essential functionalities at the disposal of any other natural or legal 54 + person. 55 + 56 + 2. Scope of the rights granted by the Licence 57 + 58 + The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, 59 + sublicensable licence to do the following, for the duration of copyright vested 60 + in the Original Work: 61 + 62 + - use the Work in any circumstance and for all usage, 63 + - reproduce the Work, 64 + - modify the Work, and make Derivative Works based upon the Work, 65 + - communicate to the public, including the right to make available or display 66 + the Work or copies thereof to the public and perform publicly, as the case may 67 + be, the Work, 68 + - distribute the Work or copies thereof, 69 + - lend and rent the Work or copies thereof, 70 + - sublicense rights in the Work or copies thereof. 71 + 72 + Those rights can be exercised on any media, supports and formats, whether now 73 + known or later invented, as far as the applicable law permits so. 74 + 75 + In the countries where moral rights apply, the Licensor waives his right to 76 + exercise his moral right to the extent allowed by law in order to make effective 77 + the licence of the economic rights here above listed. 78 + 79 + The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to 80 + any patents held by the Licensor, to the extent necessary to make use of the 81 + rights granted on the Work under this Licence. 82 + 83 + 3. Communication of the Source Code 84 + 85 + The Licensor may provide the Work either in its Source Code form, or as 86 + Executable Code. If the Work is provided as Executable Code, the Licensor 87 + provides in addition a machine-readable copy of the Source Code of the Work 88 + along with each copy of the Work that the Licensor distributes or indicates, in 89 + a notice following the copyright notice attached to the Work, a repository where 90 + the Source Code is easily and freely accessible for as long as the Licensor 91 + continues to distribute or communicate the Work. 92 + 93 + 4. Limitations on copyright 94 + 95 + Nothing in this Licence is intended to deprive the Licensee of the benefits from 96 + any exception or limitation to the exclusive rights of the rights owners in the 97 + Work, of the exhaustion of those rights or of other applicable limitations 98 + thereto. 99 + 100 + 5. Obligations of the Licensee 101 + 102 + The grant of the rights mentioned above is subject to some restrictions and 103 + obligations imposed on the Licensee. Those obligations are the following: 104 + 105 + Attribution right: The Licensee shall keep intact all copyright, patent or 106 + trademarks notices and all notices that refer to the Licence and to the 107 + disclaimer of warranties. The Licensee must include a copy of such notices and a 108 + copy of the Licence with every copy of the Work he/she distributes or 109 + communicates. The Licensee must cause any Derivative Work to carry prominent 110 + notices stating that the Work has been modified and the date of modification. 111 + 112 + Copyleft clause: If the Licensee distributes or communicates copies of the 113 + Original Works or Derivative Works, this Distribution or Communication will be 114 + done under the terms of this Licence or of a later version of this Licence 115 + unless the Original Work is expressly distributed only under this version of the 116 + Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee 117 + (becoming Licensor) cannot offer or impose any additional terms or conditions on 118 + the Work or Derivative Work that alter or restrict the terms of the Licence. 119 + 120 + Compatibility clause: If the Licensee Distributes or Communicates Derivative 121 + Works or copies thereof based upon both the Work and another work licensed under 122 + a Compatible Licence, this Distribution or Communication can be done under the 123 + terms of this Compatible Licence. For the sake of this clause, ‘Compatible 124 + Licence’ refers to the licences listed in the appendix attached to this Licence. 125 + Should the Licensee's obligations under the Compatible Licence conflict with 126 + his/her obligations under this Licence, the obligations of the Compatible 127 + Licence shall prevail. 128 + 129 + Provision of Source Code: When distributing or communicating copies of the Work, 130 + the Licensee will provide a machine-readable copy of the Source Code or indicate 131 + a repository where this Source will be easily and freely available for as long 132 + as the Licensee continues to distribute or communicate the Work. 133 + 134 + Legal Protection: This Licence does not grant permission to use the trade names, 135 + trademarks, service marks, or names of the Licensor, except as required for 136 + reasonable and customary use in describing the origin of the Work and 137 + reproducing the content of the copyright notice. 138 + 139 + 6. Chain of Authorship 140 + 141 + The original Licensor warrants that the copyright in the Original Work granted 142 + hereunder is owned by him/her or licensed to him/her and that he/she has the 143 + power and authority to grant the Licence. 144 + 145 + Each Contributor warrants that the copyright in the modifications he/she brings 146 + to the Work are owned by him/her or licensed to him/her and that he/she has the 147 + power and authority to grant the Licence. 148 + 149 + Each time You accept the Licence, the original Licensor and subsequent 150 + Contributors grant You a licence to their contributions to the Work, under the 151 + terms of this Licence. 152 + 153 + 7. Disclaimer of Warranty 154 + 155 + The Work is a work in progress, which is continuously improved by numerous 156 + Contributors. It is not a finished work and may therefore contain defects or 157 + ‘bugs’ inherent to this type of development. 158 + 159 + For the above reason, the Work is provided under the Licence on an ‘as is’ basis 160 + and without warranties of any kind concerning the Work, including without 161 + limitation merchantability, fitness for a particular purpose, absence of defects 162 + or errors, accuracy, non-infringement of intellectual property rights other than 163 + copyright as stated in Article 6 of this Licence. 164 + 165 + This disclaimer of warranty is an essential part of the Licence and a condition 166 + for the grant of any rights to the Work. 167 + 168 + 8. Disclaimer of Liability 169 + 170 + Except in the cases of wilful misconduct or damages directly caused to natural 171 + persons, the Licensor will in no event be liable for any direct or indirect, 172 + material or moral, damages of any kind, arising out of the Licence or of the use 173 + of the Work, including without limitation, damages for loss of goodwill, work 174 + stoppage, computer failure or malfunction, loss of data or any commercial 175 + damage, even if the Licensor has been advised of the possibility of such damage. 176 + However, the Licensor will be liable under statutory product liability laws as 177 + far such laws apply to the Work. 178 + 179 + 9. Additional agreements 180 + 181 + While distributing the Work, You may choose to conclude an additional agreement, 182 + defining obligations or services consistent with this Licence. However, if 183 + accepting obligations, You may act only on your own behalf and on your sole 184 + responsibility, not on behalf of the original Licensor or any other Contributor, 185 + and only if You agree to indemnify, defend, and hold each Contributor harmless 186 + for any liability incurred by, or claims asserted against such Contributor by 187 + the fact You have accepted any warranty or additional liability. 188 + 189 + 10. Acceptance of the Licence 190 + 191 + The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ 192 + placed under the bottom of a window displaying the text of this Licence or by 193 + affirming consent in any other similar way, in accordance with the rules of 194 + applicable law. Clicking on that icon indicates your clear and irrevocable 195 + acceptance of this Licence and all of its terms and conditions. 196 + 197 + Similarly, you irrevocably accept this Licence and all of its terms and 198 + conditions by exercising any rights granted to You by Article 2 of this Licence, 199 + such as the use of the Work, the creation by You of a Derivative Work or the 200 + Distribution or Communication by You of the Work or copies thereof. 201 + 202 + 11. Information to the public 203 + 204 + In case of any Distribution or Communication of the Work by means of electronic 205 + communication by You (for example, by offering to download the Work from a 206 + remote location) the distribution channel or media (for example, a website) must 207 + at least provide to the public the information requested by the applicable law 208 + regarding the Licensor, the Licence and the way it may be accessible, concluded, 209 + stored and reproduced by the Licensee. 210 + 211 + 12. Termination of the Licence 212 + 213 + The Licence and the rights granted hereunder will terminate automatically upon 214 + any breach by the Licensee of the terms of the Licence. 215 + 216 + Such a termination will not terminate the licences of any person who has 217 + received the Work from the Licensee under the Licence, provided such persons 218 + remain in full compliance with the Licence. 219 + 220 + 13. Miscellaneous 221 + 222 + Without prejudice of Article 9 above, the Licence represents the complete 223 + agreement between the Parties as to the Work. 224 + 225 + If any provision of the Licence is invalid or unenforceable under applicable 226 + law, this will not affect the validity or enforceability of the Licence as a 227 + whole. Such provision will be construed or reformed so as necessary to make it 228 + valid and enforceable. 229 + 230 + The European Commission may publish other linguistic versions or new versions of 231 + this Licence or updated versions of the Appendix, so far this is required and 232 + reasonable, without reducing the scope of the rights granted by the Licence. New 233 + versions of the Licence will be published with a unique version number. 234 + 235 + All linguistic versions of this Licence, approved by the European Commission, 236 + have identical value. Parties can take advantage of the linguistic version of 237 + their choice. 238 + 239 + 14. Jurisdiction 240 + 241 + Without prejudice to specific agreement between parties, 242 + 243 + - any litigation resulting from the interpretation of this License, arising 244 + between the European Union institutions, bodies, offices or agencies, as a 245 + Licensor, and any Licensee, will be subject to the jurisdiction of the Court 246 + of Justice of the European Union, as laid down in article 272 of the Treaty on 247 + the Functioning of the European Union, 248 + 249 + - any litigation arising between other parties and resulting from the 250 + interpretation of this License, will be subject to the exclusive jurisdiction 251 + of the competent court where the Licensor resides or conducts its primary 252 + business. 253 + 254 + 15. Applicable Law 255 + 256 + Without prejudice to specific agreement between parties, 257 + 258 + - this Licence shall be governed by the law of the European Union Member State 259 + where the Licensor has his seat, resides or has his registered office, 260 + 261 + - this licence shall be governed by Belgian law if the Licensor has no seat, 262 + residence or registered office inside a European Union Member State. 263 + 264 + Appendix 265 + 266 + ‘Compatible Licences’ according to Article 5 EUPL are: 267 + 268 + - GNU General Public License (GPL) v. 2, v. 3 269 + - GNU Affero General Public License (AGPL) v. 3 270 + - Open Software License (OSL) v. 2.1, v. 3.0 271 + - Eclipse Public License (EPL) v. 1.0 272 + - CeCILL v. 2.0, v. 2.1 273 + - Mozilla Public Licence (MPL) v. 2 274 + - GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 275 + - Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for 276 + works other than software 277 + - European Union Public Licence (EUPL) v. 1.1, v. 1.2 278 + - Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong 279 + Reciprocity (LiLiQ-R+). 280 + 281 + The European Commission may update this Appendix to later versions of the above 282 + licences without producing a new version of the EUPL, as long as they provide 283 + the rights granted in Article 2 of this Licence and protect the covered Source 284 + Code from exclusive appropriation. 285 + 286 + All other changes or additions to this Appendix require the production of a new 287 + EUPL version.
+37
default.nix
··· 1 + { 2 + lib, 3 + stdenvNoCC, 4 + makeWrapper, 5 + coreutils, 6 + }: 7 + let 8 + version = "0.1.0"; 9 + in 10 + stdenvNoCC.mkDerivation { 11 + pname = "ebil"; 12 + inherit version; 13 + 14 + src = ./.; 15 + 16 + nativeBuildInputs = [ 17 + makeWrapper 18 + ]; 19 + 20 + makeFlags = [ "PREFIX=$(out)" ]; 21 + 22 + postInstall = '' 23 + wrapProgram $out/bin/ebil --prefix PATH ':' \ 24 + "${ 25 + lib.makeBinPath [ 26 + coreutils 27 + ] 28 + }" 29 + ''; 30 + 31 + meta = { 32 + description = "ebil.club cli"; 33 + homepage = "https://codeberg.org/comfysage/ebil"; 34 + license = lib.licenses.eupl12; 35 + mainProgram = "ebil"; 36 + }; 37 + }
+131
ebil.sh
··· 1 + #!/usr/bin/env bash 2 + 3 + set -euo pipefail 4 + 5 + # defaults ==================================================================== 6 + 7 + EBIL_SITE="${EBIL_SITE:-""}" 8 + EBIL_PATH="${EBIL_PATH:-"."}" 9 + 10 + # util ======================================================================== 11 + 12 + PROMPT="" 13 + 14 + msg() { 15 + printf "\033[32;1m%s\033[m %s\n" "$PROMPT" "$*" 16 + } 17 + 18 + warn() { 19 + >&2 printf "\033[33;1m%s \033[mwarning: %s\n" "$PROMPT" "$*" 20 + } 21 + 22 + die() { 23 + >&2 printf "\033[31;1m%s \033[merror: %s\n" "$PROMPT" "$*" 24 + exit 1 25 + } 26 + 27 + phelp() { 28 + cat <<EOF 29 + ebil - ebil.club cli 30 + 31 + usage: 32 + push | push your site files to ebil.club 33 + > ebil push --site robin.ebil.club dist/ 34 + pull | pull your site from ebil.club to a local directory 35 + > ebil pull --site robin.ebil.club site/ 36 + 37 + env: 38 + you can set certain options using environment variables. 39 + 40 + EBIL_SITE="robin.ebil.club" | --site robin.ebil.club 41 + EBIL_PATH="dist/" | --path dist/ 42 + 43 + note: 44 + specify options *before* regular arguments. 45 + EOF 46 + exit 0 47 + } 48 + 49 + sourceenv() { 50 + [ -f .env ] && source .env || return 0 51 + } 52 + 53 + push() { 54 + if [ "$#" -gt 0 ]; then 55 + EBIL_PATH="$1" 56 + fi 57 + EBIL_PATH=$(realpath "${EBIL_PATH}") 58 + if [ ! -d "$EBIL_PATH" ]; then 59 + die "EBIL_PATH does not exist:" "${EBIL_PATH}" 60 + fi 61 + if [[ ! "$EBIL_SITE" =~ ^[a-z]+.ebil.club$ ]]; then 62 + die "malformed site url (expected form '^[a-z]+.ebil.club$'):" "$EBIL_SITE" 63 + fi 64 + name="${EBIL_SITE%.ebil.club}" 65 + 66 + msg "user: $name" 67 + msg "pushing to" "${EBIL_SITE}" "from" "${EBIL_PATH}" 68 + if [ -f "${EBIL_PATH}/index.txt" ]; then 69 + msg "" "custom curl message configured" "${EBIL_PATH}/index.txt" 70 + fi 71 + rsync -rltzq --progress --delete --chmod=D755,F644 "${EBIL_PATH}/" "ebil.club:/var/ebil.club/${name}/${EBIL_SITE}" 72 + } 73 + 74 + pull() { 75 + if [ "$#" -gt 0 ]; then 76 + EBIL_PATH="$1" 77 + fi 78 + EBIL_PATH=$(realpath "${EBIL_PATH}") 79 + if [ ! -d "$EBIL_PATH" ]; then 80 + msg "creating dst directory" "$EBIL_PATH" 81 + mkdir -p "$EBIL_PATH" 82 + fi 83 + if [[ ! "$EBIL_SITE" =~ ^[a-z]+.ebil.club$ ]]; then 84 + die "malformed site url (expected form '^[a-z]+.ebil.club$'):" "$EBIL_SITE" 85 + fi 86 + name="${EBIL_SITE%.ebil.club}" 87 + 88 + msg "pulling from" "${EBIL_SITE}" "to" "${EBIL_PATH}" 89 + rsync -rltzq --progress "ebil.club:/var/ebil.club/${name}/${EBIL_SITE}/" "${EBIL_PATH}" 90 + } 91 + 92 + main() { 93 + sourceenv 94 + 95 + flag="" 96 + if [ "$#" -gt 0 ]; then 97 + flag=${1#-} 98 + shift 99 + fi 100 + 101 + while [ "$#" -gt 0 ]; do 102 + case "$1" in 103 + --site) 104 + EBIL_SITE="$2" 105 + shift 106 + ;; 107 + --path) 108 + EBIL_PATH="$2" 109 + shift 110 + ;; 111 + --help) 112 + phelp 113 + ;; 114 + *) break ;; 115 + esac 116 + shift 117 + done 118 + 119 + case $flag in 120 + push) 121 + push "$@" 122 + ;; 123 + pull) 124 + pull "$@" 125 + ;; 126 + "") phelp ;; 127 + *) die "command does not exist." ;; 128 + esac 129 + } 130 + 131 + main "$@"
+27
flake.lock
··· 1 + { 2 + "nodes": { 3 + "nixpkgs": { 4 + "locked": { 5 + "lastModified": 1771207753, 6 + "narHash": "sha256-b9uG8yN50DRQ6A7JdZBfzq718ryYrlmGgqkRm9OOwCE=", 7 + "owner": "nixos", 8 + "repo": "nixpkgs", 9 + "rev": "d1c15b7d5806069da59e819999d70e1cec0760bf", 10 + "type": "github" 11 + }, 12 + "original": { 13 + "owner": "nixos", 14 + "ref": "nixpkgs-unstable", 15 + "repo": "nixpkgs", 16 + "type": "github" 17 + } 18 + }, 19 + "root": { 20 + "inputs": { 21 + "nixpkgs": "nixpkgs" 22 + } 23 + } 24 + }, 25 + "root": "root", 26 + "version": 7 27 + }
+29
flake.nix
··· 1 + { 2 + description = "ebil.club cli"; 3 + 4 + inputs = { 5 + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 6 + }; 7 + 8 + outputs = 9 + { self, nixpkgs }: 10 + let 11 + forAllSystems = 12 + function: 13 + nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed ( 14 + system: function nixpkgs.legacyPackages.${system} 15 + ); 16 + in 17 + { 18 + packages = forAllSystems (pkgs: { 19 + ebil = pkgs.callPackage ./default.nix { }; 20 + default = self.packages.${pkgs.stdenv.hostPlatform.system}.ebil; 21 + }); 22 + 23 + devShells = forAllSystems (pkgs: { 24 + default = pkgs.callPackage ./shell.nix { }; 25 + }); 26 + 27 + overlays.default = final: _: { ebil = final.callPackage ./default.nix { }; }; 28 + }; 29 + }
+15
makefile
··· 1 + DESTDIR ?= / 2 + PREFIX ?= $(DESTDIR)usr/local 3 + EXEC_PREFIX ?= $(PREFIX) 4 + DATAROOTDIR ?= $(PREFIX)/share 5 + BINDIR ?= $(EXEC_PREFIX)/bin 6 + MANDIR ?= $(DATAROOTDIR)/man 7 + MAN1DIR ?= $(MANDIR)/man1 8 + 9 + install: 10 + @install -v -D -m 0755 ebil.sh -T "$(BINDIR)/ebil" 11 + 12 + uninstall: 13 + rm "$(BINDIR)/ebil" 14 + 15 + .PHONY: install uninstall