{"id":20511599,"url":"https://github.com/10sr/installer_sh","last_synced_at":"2026-04-20T07:33:08.611Z","repository":{"id":6450571,"uuid":"7690116","full_name":"10sr/installer_sh","owner":"10sr","description":"Template for installation automation script","archived":false,"fork":false,"pushed_at":"2015-02-13T08:40:24.000Z","size":400,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-16T09:08:01.867Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://10sr.github.com/installer_sh","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/10sr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-01-18T16:38:51.000Z","updated_at":"2021-02-04T19:58:50.000Z","dependencies_parsed_at":"2022-09-03T03:03:51.722Z","dependency_job_id":null,"html_url":"https://github.com/10sr/installer_sh","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/10sr%2Finstaller_sh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/10sr%2Finstaller_sh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/10sr%2Finstaller_sh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/10sr%2Finstaller_sh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/10sr","download_url":"https://codeload.github.com/10sr/installer_sh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242117648,"owners_count":20074434,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T20:36:33.061Z","updated_at":"2026-04-20T07:33:08.572Z","avatar_url":"https://github.com/10sr.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/10sr/installer_sh.svg)](https://travis-ci.org/10sr/installer_sh)\n\n\n\ninstaller.sh\n============\n\nWrite your own installation script!\n\n\n\nWhat is installer.sh for?\n-------------------------\n\nI'm tired of downloading tarballs, extracting them and running commands like\n`./configure`, `make`, `make install` ... many many times. Definitely developers\nknow where to download the tarballs from, how to build and how to install the\nSoftwares. They should write the script to automate installation.\n\ninstaller.sh makes it easy to write scripts automating installation. You can\nautomate installion of your great softwares or some other useful softwares by\ndefining a few variables and a function in installer.sh.\n\ninstaller.sh is strongly inspired by [ArchLinux](http://www.archlinux.org/)'s\nmakepkg and [PKGBUILD](https://wiki.archlinux.org/index.php/Creating_Packages).\n\n\n\nThings installer.sh does not do\n-------------------------------\n\ninstaller.sh is not a package manager. It does not:\n\n* manage installed packages\n* resolve dependencies\n* record installed files (and uninstall packages by removing these files)\n* update packages automatically\n\nUsers who want to install softwares should not use installer.sh when the\nsoftwares are provided by package managers. This script is for softwares which\nare not so popular, or not updated to newer version on some systems.\n\n\n\nInstall\n-------\n\ninstaller.sh is not intended to install. Use this script as a template and write\ncommands as you need!\n\n\n\nDefine a package\n----------------\n\nDefine some variables and functions.\n\n\n### $pkgname\n\nName of package.\n\n\n### $source (if needed)\n\nNewline separated list of urls of archives. Archive listed here will be\ndownloaded and extracted automatically. If the archives already exist, do\nnot download them twice.\n\nEach line is just the url to download archives or can be like\n`$pkgname-$pkgver.tar.gz::http://example.com/file.tar.gz`. In this form, you can\nchange the name of downloaded archive.\n\nEach Downloaded file is extracted immediately in `$srcdir` If it has a archive\n suffix.\n\n\n### $pkgver (optional)\n\nVersion of the software.\n\n\n### $pkgdesc (optional)\n\nShort description.\n\n\n### $url (optional)\n\nUrl of the software.\n\n\n### main()\n\nFunction called when installing package.\n\nBefore `main()` is called, archives listed in `$sources` are downloaded and\nextracted, and `$startdir` and `$srcdir` are set. `$startdir` is the working\ndirectory when install.sh was executed and `$srcdir` is directory where\ndownloaded archive files are extracted. Usually you can use a command like\n`cd $srcdir/$pkgname-$pkgver` to go into the directory the files were\nextracted.\n\n\n### help_main() (optional)\n\nAdditional help descripting options of `main()`. If defined, this function\nis called when subcommand `help` is used.\n\n\n### Reserved variable and function names\n\nAll names start with double underscores (like `__val`) is all reserved for the\ninternal porpose, whareas you can freely use names with one underscore (like\n`_val`).\n\n\nUse installer.sh\n----------------\n\nTo install the package, run:\n\n    $ ./installer.sh install\n\nSubcommand `install` fetches files listed in `$sources`, extracts them if they\nare archive files, and then calls `main()` with given options.\n\nTo only download archive listed in $source and extract them, run:\n\n    $ ./installer.sh fetch\n\nThis command is especially useful when you are writing `main()` or you want\nto issue some commands before calling `main()`.\n\n`$ ./installer.sh help` for additional help.\n\n\n### Note: fetching and extracting\n\nFetching a file and extracting are done when and only when the file does not\nexist. If a file is already exists at the path the file to be fetched would\nbe placed, neither fetching nor extracting the file are done. So if you remove\nonly files generated by extracting, things do not work well because files\nare not extracted since the archive file already exists.\n\n\n\nLicense\n-------\n\nAll code licensed under CC0: \u003chttp://creativecommons.org/publicdomain/zero/1.0/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F10sr%2Finstaller_sh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F10sr%2Finstaller_sh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F10sr%2Finstaller_sh/lists"}