commit cc3dc74d98f3316686072c1370ec49cee7eb586fb820d9a7c3b3dd83562729af Author: OBS User mrdocs Date: Thu May 7 06:36:28 2015 +0000 Accepting request 304064 from home:oreinert I want to maintain homeshick in Factory and would like to use utilities as the devel project. OBS-URL: https://build.opensuse.org/request/show/304064 OBS-URL: https://build.opensuse.org/package/show/utilities/homeshick?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/README-openSUSE.md b/README-openSUSE.md new file mode 100644 index 0000000..9ba9e96 --- /dev/null +++ b/README-openSUSE.md @@ -0,0 +1,50 @@ +# homeshick for openSUSE + +## Target audience + +This package contains a single shared installation of homeshick suitable for +users. It provides the default `homeshick` command ready for use without +configuration. + +## Setup + +To gain full functionality (the `homeshick cd` command), and maximum comfort of +use (e.g., auto-completion), it is necessary for shell startup scrips to source +a homeshick setup script. The normal installation instructions for homeshick +explain how to do it: + +[homeshick installation instructions](https://github.com/andsens/homeshick/wiki/Installation) + +When following those instructions, any mention of cloning the homeshick git +repository can be ignored, obviously. Also, the path +`$HOME/.homesick/repos/homeshick` should be substituted with +`/usr/share/homeshick` to access the corresponding files installed by this +package. + +For example, when the installation instructions tell you to run + +``` +printf '\nsource "$HOME/.homesick/repos/homeshick/homeshick.sh"' >> $HOME/.bashrc +``` + +you should instead run + +``` +printf '\nsource "/usr/share/homeshick/homeshick.sh"' >> $HOME/.bashrc +``` + + + + +## Hackers and developers + +The default method of installing homeshick is for each user to make a private +clone of the upstream repository from Github. For users that want to modify the +implementation, and maybe make contributions to homeshick, that remains the way +to go about it. + +A git clone and this package can co-exist. Assuming that the setup scripts have +been sourced, as instructed above, the environment variable `HOMESHICK_DIR` can +be used to control which instance of homeshick is run, the default being the +instance installed by this package. + diff --git a/b5e7767367f0bdac85701e50272060bb9556760b.zip b/b5e7767367f0bdac85701e50272060bb9556760b.zip new file mode 100644 index 0000000..6326d2c --- /dev/null +++ b/b5e7767367f0bdac85701e50272060bb9556760b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75e2dbca14d5d08475c762b162f0bc68cd01a885d20473d88ad2739aaeb923e6 +size 50808 diff --git a/homeshick.changes b/homeshick.changes new file mode 100644 index 0000000..5482376 --- /dev/null +++ b/homeshick.changes @@ -0,0 +1,32 @@ +------------------------------------------------------------------- +Sun Apr 26 12:26:56 UTC 2015 - seroton10@gmail.com + +- Added README for openSUSE. + +------------------------------------------------------------------- +Fri Apr 24 20:31:00 UTC 2015 - seroton10@gmail.com + +- Make homeshick command available by default + +------------------------------------------------------------------- +Sun Apr 19 12:51:55 UTC 2015 - seroton10@gmail.com + +- PRs #135 and #138 accepted upstream, which allows running BATS + tests in %check section without patches. + +------------------------------------------------------------------- +Mon Apr 13 11:16:39 UTC 2015 - seroton10@gmail.com + +- Latest obs_compat fixes, spec-cleaning. + +------------------------------------------------------------------- +Sat Apr 11 22:41:51 UTC 2015 - seroton10@gmail.com + +- First build with running BATS tests + * Based on development branch for required fix + +------------------------------------------------------------------- +Sun Nov 9 17:01:13 UTC 2014 - seroton10@gmail.com + +- Initial version + diff --git a/homeshick.patch b/homeshick.patch new file mode 100644 index 0000000..65369e7 --- /dev/null +++ b/homeshick.patch @@ -0,0 +1,64 @@ +diff --git a/bin/homeshick b/bin/homeshick +index 46fd1da..b1e4a6f 100755 +--- a/bin/homeshick ++++ b/bin/homeshick +@@ -2,7 +2,7 @@ + + repos="$HOME/.homesick/repos" + # Include all helper functions. We will include the required command function later on. +-homeshick=${HOMESHICK_DIR:-$HOME/.homesick/repos/homeshick} ++homeshick=${HOMESHICK_DIR:-/usr/share/homeshick} + source "$homeshick/lib/exit_status.sh" + source "$homeshick/lib/fs.sh" + source "$homeshick/lib/git.sh" +diff --git a/bin/homeshick.csh b/bin/homeshick.csh +index 2814f10..1c2c9a2 100644 +--- a/bin/homeshick.csh ++++ b/bin/homeshick.csh +@@ -1,6 +1,6 @@ + # This helper script should be sourced via an alias, e.g. + # +-# alias homeshick "source $HOME/.homesick/repos/homeshick/bin/homeshick.csh" ++# alias homeshick "source /usr/share/homeshick/bin/homeshick.csh" + # + if ( "$1" == "cd" && "x$2" != "x" ) then + if ( -d "$HOME/.homesick/repos/$2/home" ) then +@@ -12,6 +12,6 @@ else + if ( $?HOMESHICK_DIR ) then + $HOMESHICK_DIR/bin/homeshick $* + else +- $HOME/.homesick/repos/homeshick/bin/homeshick $* ++ /usr/share/homeshick/bin/homeshick $* + endif + endif +diff --git a/homeshick.fish b/homeshick.fish +index 10359ee..51cd0a2 100644 +--- a/homeshick.fish ++++ b/homeshick.fish +@@ -1,5 +1,5 @@ + # This script should be sourced in the context of your shell like so: +-# source $HOME/.homesick/repos/homeshick/homeshick.fish ++# source /usr/share/homeshick/homeshick.fish + # Once the homeshick() function is defined, you can type + # "homeshick cd CASTLE" to enter a castle. + +@@ -9,6 +9,6 @@ function homeshick + else if set -q HOMESHICK_DIR + eval $HOMESHICK_DIR/bin/homeshick $argv + else +- eval $HOME/.homesick/repos/homeshick/bin/homeshick $argv ++ eval /usr/share/homeshick/bin/homeshick $argv + end + end +diff --git a/homeshick.sh b/homeshick.sh +index e8c2663..797731d 100644 +--- a/homeshick.sh ++++ b/homeshick.sh +@@ -7,6 +7,6 @@ function homeshick() { + if [ "$1" = "cd" ] && [ -n "$2" ]; then + cd "$HOME/.homesick/repos/$2" + else +- "${HOMESHICK_DIR:-$HOME/.homesick/repos/homeshick}/bin/homeshick" "$@" ++ "${HOMESHICK_DIR:-/usr/share/homeshick}/bin/homeshick" "$@" + fi + } diff --git a/homeshick.rpmlintrc b/homeshick.rpmlintrc new file mode 100644 index 0000000..3fc8cf9 --- /dev/null +++ b/homeshick.rpmlintrc @@ -0,0 +1,2 @@ +addFilter("non-executable-script .*/usr/share/homeshick/lib") + diff --git a/homeshick.spec b/homeshick.spec new file mode 100644 index 0000000..5f0d4ee --- /dev/null +++ b/homeshick.spec @@ -0,0 +1,92 @@ +# +# spec file for package homeshick +# +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +%define git_sha1 b5e7767367f0bdac85701e50272060bb9556760b +Name: homeshick +# NB: The upstream project does not have any releases; hence, this package will +# remain at version zero. The precise package content is identified by the git +# hash above. Package updates are only indicated by the RPM release number, +# which is incremented by OBS for each package change. +Version: 0 +Release: 0 +Summary: Dotfile synchronizer based on Git and Bash +License: MIT +Group: Productivity/File utilities +Url: https://github.com/andsens/homeshick +Source0: https://github.com/andsens/homeshick/archive/%{git_sha1}.zip +Source1: README-openSUSE.md +Patch0: homeshick.patch +BuildRequires: expect +BuildRequires: git >= 1.5 +BuildRequires: iputils +BuildRequires: tcsh +BuildRequires: unzip +Requires: bash >= 3 +Requires: git >= 1.5 +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildArch: noarch +%if 0%{?suse_version} && 0%{?suse_version} > 1320 +BuildRequires: bats +BuildRequires: fish +%endif + +%description +In Unix, configuration files are king. Tailoring tools to suit your needs +through configuration can be empowering. An immense number of hours is spent +on getting these adjustments just right, but once you leave the confines of +your own computer, these local optimizations are left behind. + +By the power of git, homeshick enables you to bring the symphony of settings +you have poured your heart into with you to remote computers. With it you can +begin to focus even more energy on bettering your work environment since the +benefits are reaped on whichever machine you are using. + +However bare bones these machines are, provided that at least bash 3 and git +1.5 are available you can use homeshick. homeshick can handle multiple dotfile +repositories. This means that you can install larger frameworks like oh-my-zsh +or a multitude of emacs or vim plugins alongside your own customizations +without clutter. + +Packaged revision: %{git_sha1} + +%prep +%setup -q -n %{name}-%{git_sha1} +%patch0 -p1 + +%build + +%install +mkdir -p %{buildroot}%{_datadir}/%{name} +mv %{name}.sh %{name}.fish bin lib completions %{buildroot}%{_datadir}/%{name} +mkdir -p %{buildroot}%{_bindir} +ln -s %{_datadir}/%{name}/bin/homeshick %{buildroot}%{_bindir}/%{name} +cp %{SOURCE1} . + +%check +# only run tests if bats is available +if type bats &>/dev/null; then + HOMESHICK_DIR=%{buildroot}%{_datadir}/%{name} bats test/suites +fi + +%files +%defattr(-,root,root) +%doc README.md README-openSUSE.md LICENSE CONTRIBUTING.md +%{_datadir}/%{name} +%{_bindir}/homeshick + +%changelog